window.open()详解及浏览器兼容性问题示例探讨

 更新时间:2014年05月29日 14:43:36   作者:  
这篇文章主要介绍了window.open()的使用及浏览器兼容性问题方面的知识,感兴趣的朋友可以参考下
一、基本语法:
window.open(pageURL,name,parameters)
其中:
pageURL 为子窗口路径
name 为子窗口名字
parameters 为窗口参数(各参数用逗号分隔)

二、示例
复制代码 代码如下:

<script type="text/javascript">
window.open('page.html','newwindow','height=500,width=800,top=0,left=0,
toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')
</script>

page.html将在新窗体newwindow中打开,宽为800,高为500,距屏顶0象素,屏左0象素,

无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。

各浏览器对window.open()的窗口特征sFeatures参数支持程度存在差异

各浏览器运行结果汇总:
 

上表中为各个浏览器对 features 各参数选项的支持程度,其中需要特殊说明的如下:

【标注1】:IE7 IE8 Firefox Chrome Safari 中,当"menubar"选项为"yes"时,默认不显示菜单栏,需要按ALT键后菜单栏才可显示;相反当 "menubar"选项为"no"时,即使按了ALT键也不会显示菜单栏。
【标注2】:Safari中,开启"location"选项与开启"toolbar"选项时显示效果一致。
【标注3】:IE6 IE8 Chrome 中,使用"top"和"left"定位,如果出现设定的的坐标值过大,弹出窗口将可能显示在屏幕可视范围外。
【标注4】:IE7 Firefox Safari Opera中,使用"top"和"left"定位,如果出现设定的的坐标值过大,窗口会自动调整"top"与"left"值,确保窗口正常显示在屏幕可视区域内。
【标注5】:Chrome Opera中,不支持在没有设定"width"与"height"值的情况下独立使用"left"和"top",此时"left""top"设定值均不生效。
【标注6】:Chrome 中,不支持在没有设定"left"和"height"值的情况下独立使用"width"与"height",此时"width" "height"设定值均不生效。结合【标注5】说明可知,在Chrome中弹出窗口不论想要设定宽高或位置中的一个或几个值,都必须将他们全部赋值,否则都将不起作用。
【标注7】:Firefox Chrome 中,地址栏会始终显示。
【标注8】:Opera 中,地址栏默认不显示,但可以点击页面最上方横条使他显示出来,设置"location=yes"后地址栏会自动显示出来。
【标注9】:Chrome Opera 中,不论"menubar"值如何设置,永远不显示菜单栏。
【标注10】:Firefox Safari Chrome Opera中无论"resizable"值如何设置,窗口永远可由用户调整大小。
【标注11】:Safari Chrome 中,在页面存在滚动条的情况下,无论"scrollbars"值如何设置,滚动条始终可见。
【标注12】:IE7 在 Windows XP SP3 系统中默认可以支持"status "参数隐藏状态栏;而在 Windows Vista系统默认环境下不支持"status"参数,状态栏始终可见.这与两个系统中默认的 IE7 小版本号不同有关,前者版本号较低,后者版本号较高。
【标注13】:Firefox 中,无论"status"值如何设置,状态栏始终可见,而 Chrome Opera中,则与前者相反,状态栏始终不可见。
【标注14】: Chrome Opera 中,无论"toolbar"值如何设置,始终不显示工具栏。
综上所述,可见window.open方法的sFeatures参数支持程度存在巨大差异,使用时须谨慎为之。

一般我们用window.open打开页面都需要居中显示,示例代码:
复制代码 代码如下:

var width=800; //弹出窗口的宽度;
var height=500; //弹出窗口的高度;
var top = (window.screen.availHeight-height)/2; //窗口的垂直位置;
var left = (window.screen.availWidth-width)/2; //窗口的水平位置;
window.open('page.html','newwindow','height='+height+',width='+width+',top='+top+',left='+left+',
toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')

availHeight和height的区别
复制代码 代码如下:

window.screen.width 返回当前屏幕宽度(分辨率值)
window.screen.height 返回当前屏幕高度(分辨率值)
screen.availWidth,screen.availHeight是指除去taskbar(任务栏)以外的长宽

相关文章

  • JS实现浏览上传文件的代码

    JS实现浏览上传文件的代码

    本文通过实例代码给大家介绍了基于js实现浏览上传文件的代码,非常不错,代码简单易懂,具有参考借鉴价值,需要的朋友参考下吧
    2017-08-08
  • ES6中Proxy代理用法实例浅析

    ES6中Proxy代理用法实例浅析

    这篇文章主要介绍了ES6中Proxy代理用法,结合实例形式简单分析了Proxy代理的概念、功能、使用方法与相关注意事项,需要的朋友可以参考下
    2017-04-04
  • JavaScript设计模式之迭代者模式详情

    JavaScript设计模式之迭代者模式详情

    这篇文章主要介绍了JavaScript设计模式之迭代者模式详情,迭代器设计模式能够可以让我们更方便的且有规矩的进行访问复合数据的每一项,也可以通过迭代器进行完成一些流线式操作
    2022-06-06
  • js中setTimeout的妙用--防止循环超时

    js中setTimeout的妙用--防止循环超时

    本文主要介绍了使用setTimeout实现防止循环超时的方法,具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • js控制web打印(局部打印)方法整理

    js控制web打印(局部打印)方法整理

    本文整理了一些常用的web打印及局部打印的方法以备不时之需,感兴趣的朋友可以学习下
    2013-05-05
  • uniapp改变底部安全区顶部手机信号时间电池栏颜色样式

    uniapp改变底部安全区顶部手机信号时间电池栏颜色样式

    这篇文章主要为大家介绍了uniapp改变底部安全区顶部手机信号时间电池栏颜色样式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • JavaScript实现QQ聊天室功能

    JavaScript实现QQ聊天室功能

    这篇文章主要为大家详细介绍了JavaScript实现QQ聊天室功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JavaScript实现指定数量的并发限制的示例代码

    JavaScript实现指定数量的并发限制的示例代码

    这篇文章主要介绍了JavaScript实现指定数量的并发限制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 鼠标划过实现延迟加载并隐藏层的js代码

    鼠标划过实现延迟加载并隐藏层的js代码

    鼠标划过延迟加载隐藏层的效果,想必大家都有见到过吧,在本文将为大家详细介绍下使用js是如何实现的,感兴趣的朋友可以参考下
    2013-10-10
  • 浅谈html转义及防止javascript注入攻击的方法

    浅谈html转义及防止javascript注入攻击的方法

    下面小编就为大家带来一篇浅谈html转义及防止javascript注入攻击的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论