window.open()理解以及如何用window.open()实现窗口关闭

   1.window.open的4个参数

 window.open(pageURL,name,parameters,bReplace)
其中:
pageURL 为子窗口路径 ,写的时候要注意绝对路径要加http://,相对路径要加../
name 为子窗口句柄 (这是实现关闭的关键,详细看之后)
parameters 为窗口参数(各参数用逗号分隔) :
alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
depended | yes/no | 是否和父窗口同时关闭
directories | yes/no | Nav2和3的目录栏是否可见
height | pixel value | 窗口高度
hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
innerHeight | pixel value | 窗口中文档的像素高度
innerWidth | pixel value | 窗口中文档的像素宽度
location | yes/no | 位置栏是否可见
menubar | yes/no | 菜单栏是否可见
outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
resizable | yes/no | 窗口大小是否可调整
screenX | pixel value | 窗口距屏幕左边界的像素长度
screenY | pixel value | 窗口距屏幕上边界的像素长度
scrollbars | yes/no | 窗口是否可有滚动栏
titlebar | yes/no | 窗口题目栏是否可见
toolbar | yes/no | 窗口工具栏是否可见
Width | pixel value | 窗口的像素宽度
z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

补充:top:为距离窗体上方的距离

          left:为距离窗体左侧的距离

          location:当用IE9或IE8的时候新打开一个窗体要用location=no,这样会新弹出一个窗口而不是在标签里。

bReplace 是true/false,用来指定是否在替换当前浏览器历史中的地址。

2. window.open实现关闭其它窗口的用法

关键:name ,location

原理:利用已经打开的窗体的窗口句柄,在新打开的窗体将其窗体句柄与已经打开的一致,从而冲掉旧窗体,实现关闭。

例子:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function openBaidu() {
            // 打开百度
            window.open("http://www.baidu.com", "baidu", "location=no", false);
        }
        function closeBaidu() {
            // 关闭百度
            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);
            obj.close();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" value="open" οnclick="openBaidu();" />
    <input type="button" value="close" οnclick="closeBaidu();" />
    </div>
    </form>
</body>
</html>

说明:

1.当点击open按钮时会打开百度,其窗口句柄名为baidu

2.点击close按钮的时候会新打开一个窗体,窗口句柄名字仍为baidu

3.在IE8,9下需设置localtion,top和left为让第二次打开的窗体不被看到,可以没有

4.obj.close(); 可以让新打开的窗体关闭,从而两个画面全关闭。可以没有。

5.在试验前需设置 Internet选项->安全->受信任的站点->自定义级别->允许脚本初始化的窗口不受位置和大小限制

6.设置 Internet选项->高级->允许脚本调试

7.当打开别的服务器的窗体,再在本地实现关闭的时候,虽然采用同样的句柄名,但无法实现关闭,而且会报脚本错,这个自己仍在调查.....。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function openBaidu() {
            // 打开百度
            window.open("http://www.baidu.com", "baidu", "location=no", false);
        }
        function closeBaidu() {
            // 关闭百度
            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);
            obj.close();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" value="open" οnclick="openBaidu();" />
    <input type="button" value="close" οnclick="closeBaidu();" />
    </div>
    </form>
</body>
</html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function openBaidu() {
            // 打开百度
            window.open("http://www.baidu.com", "baidu", "location=no", false);
        }
        function closeBaidu() {
            // 关闭百度
            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);
            obj.close();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" value="open" οnclick="openBaidu();" />
    <input type="button" value="close" οnclick="closeBaidu();" />
    </div>
    </form>
</body>
</html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function openBaidu() {
            // 打开百度
            window.open("http://www.baidu.com", "baidu", "location=no", false);
        }
        function closeBaidu() {
            // 关闭百度
            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);
            obj.close();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" value="open" οnclick="openBaidu();" />
    <input type="button" value="close" οnclick="closeBaidu();" />
    </div>
    </form>
</body>
</html><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function openBaidu() {
            // 打开百度
            window.open("http://www.baidu.com", "baidu", "location=no", false);
        }
        function closeBaidu() {
            // 关闭百度
            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);
            obj.close();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" value="open" οnclick="openBaidu();" />
    <input type="button" value="close" οnclick="closeBaidu();" />
    </div>
    </form>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值