window.open()参数详解及对浏览器的兼容性

时间:2022-02-19 16:13:53

       因为篇幅,window.open()浏览器的兼容性请点击 这里

Part1:参数详解

  window.open(url,name,param)

  url:即将打开的子窗口的地址;比如 "http://www.baidu.com"  http:// 这段是必须要的,否则找不到页面,那么打开的子页面可能还是父页面。或者相对路径 ../

  name:子窗口的句柄;就相当于是子窗口的一个名字,可以自定义。窗口的句柄

  param:子窗口的一些参数,使用“ , ”进行分隔;

    param可选参数

    注:以下参数可能要配合使用,单独使用某些参数可能不起作用,配合规则后续补充,看客们在使用时,请注意实现效果

    (其中yes/no也可使用1/0;pixel value为具体的数值,单位象素)
    参数 | 取值范围 | 说明 

    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 |     窗口工具栏是否可见     (默认no;当为yes是和父窗口在同一个标签中打开,不会再打开新标签)
    Width        | pixel value |   窗口的像素宽度 
    z-look          | yes/no |     窗口被激活后是否浮在其它窗口之上

Part2:应用实例

  1.打开一个进行基础设置过的窗口

window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no') 

  2.使用函数控制窗口的弹出 

function openwin() {
    window.open ("page.html", "newwindow", "height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")
}
//浏览器在读取页面之前调用函数打开窗口
<body onload="openwin()"> 
…任意的页面内容… 
</body>
//浏览器离开当前页面时,打开新窗口(已知不支持谷歌、Opera浏览器)。onunload事件见这里
<body onunload="openwin()"> 
…任意的页面内容… 
</body>  

其他的还可以通过按钮点击、a标签等触发。

   3.同时弹出两个窗口

<script>
    function openwin() {
        window.open("http://www.baidu.com","new1","height=100, width=400")
     window.open("https://www.cnblogs.com/","new1","height=100, width=400")
  }
</script>

  注意:上面两个窗口的大小和位置因为相同,会出现重叠。

  注意2:两个窗口的name不能相同

  4.通过a标签实现在打开一个窗口的同时,打开另一个小窗口

<script>
    function openwin() {
        window.open("http://www.baidu.com","new1","height=100, width=400")
    } 
</script>
<body>
  <a href="https://www.cnblogs.com/" onclick="openwin()">点击打开博客园</a> 
</body>

  注意:在打开大窗口之后,小窗口会被覆盖掉,所以不要觉得小窗口没了哦。

  注意2:按照这种逻辑,其实可以通知打开多个小窗口的,只要在 openwin 函数里添加多个 window.open() 就ok了。

  5.可以通过定时器关闭窗口

  注意:上面都是直接连接到已有的网站,这里是要在自己的网页代码里加内容

<script language="JavaScript"> 
    function closeit() {
        setTimeout("self.close()",10000) //毫秒
    } 
</script>    

  通过定时器控制显示的时长,使用 self.close() 函数控制自身的关闭  点这里看定时器的用法