以下出自:http://www.cnblogs.com/stswordman/archive/2006/06/02/415853.html
Window_Open详解
引:Window_Open详解 一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+
二、基本语法: window.open(pageURL,name,parameters)
其中: pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔)
三、示例:
二、基本语法: window.open(pageURL,name,parameters)
其中: pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔)
三、示例:
<SCRIPT> <!-- 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') //写成一行 --> </SCRIPT> |
脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。请对照。 上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。
四、各项参数 其中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 | 窗口工具栏是否可见 Width | pixel value | 窗口的像素宽度 z-look | yes/no | 窗口被激活后是否浮在其它窗口之上
四、各项参数 其中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 | 窗口工具栏是否可见 Width | pixel value | 窗口的像素宽度 z-look | yes/no | 窗口被激活后是否浮在其它窗口之上
......
window.open 浏览器差异.
首先引入 w3help的,莫的测试: 原帖地址:http://www.w3help.org/zh-cn/causes/BX1053
w3help的测试,和我的测试相互补充,应该比较完整了.悲剧的是我做完测试后,和莫提了一嘴,他告诉我w3help有啊. 我累个去.咋不早说.我可以省不少事呢.
建议先看看w3help的.内容比较详细.尤其是据说 window.open,这种宿主方法.居然,可能在将来被html5所统一.期待啊.
浏览器实现差异:
.一个open的窗口被拦截后, Opera11- ,Chrome11-仍然会有窗口句柄. 而Safari是undefined ,IE和Firefox则是 null. 而Opera,Chrome拦截掉窗口后.这个窗口的window.closed属性为false.
(所以在不考虑Opera和Chrome的情况下.可以用 !!win 来判断窗口是否被拦截. 而win.closed没有更大的意义)
.sougou高速浏览器2.1+ IE内核下,会无视该弹窗是否为响应用户鼠标操作的回调(a 和 input button 以及button等点击类交互标签是不被拦截的).而一律强制拦截弹窗. 而且用a标签的click()也会被拦截.(好在,IE内核下,被拦截后,win 都是null.可以检测出来,用跳转代替,遗憾的是chromium内核下同chrome一样.被拦截时,无法检测.要检测chrome,opera的弹出,比较麻烦,弹一个about:blank,Opear检测documentElement是否存在,chrome则需要检测documentElement.clientWidth === 0)
.各个浏览器使用window.open,第三参数效果:(应注意,如果连续写多个参数,应以 ","号分隔.如果其中某个参数名有错误,则可能导致整个第三参数在,Chrome和IE浏览器中失效)
浏览器 | 无参数 | width,height | left,top | toolbar | location |
Directories
|
Status
|
Menubar |
Scrollbar
|
Resizable
|
screenX,screenY
|
FullScreen |
期待结果 | 有标签的 标签 无标签的 弹窗 | 尽量按指定 宽高弹窗 | 语义冲突的参数 相对parent页 left ,top位置 | 默认 无工具栏 yes 有工具栏 no 无工具栏 | 默认 有(r) yes 有(w) no 无 (r)只读,(w)可写 | 这玩意到底 是神马? 只有IE6支持 无期待结果 | 默认 无 yes 有 no 无 | 垃圾参数 无视. 只对早期 ie有效 | 默认auto yes auto no 无 | 默认 是 yes 是 no 否 |
真正语义上的参数 相对屏幕坐标 | 全屏显示 |
IE | 6 弹窗 7-8弹窗 9 标签 |
全部 ok | (注1) | 全部 默认无 yes 有 no 无
|
6 默认 无 yes 有(w) (toolbar也有了) no 无 7,8,9 默认 有(r) yes 有(w) no 有(r) |
6 toolbar去掉 location部分 7,8,9不支持 |
6,7,8 无视参数 始终 有 9 默认 无 yes 有 no 无 |
全部 无视参数 始终 无 | 全部 默认 否 yes 是 no 否 | 不支持 | 全部 支持 | |
Chrome | 全部 标签 | 全部 ok | 全部相对
父页面
left,top |
不支持此参数 弹窗木有工具栏 |
不支持此参数 始终有,且只读
|
不支持 | 无status bar | 1 无视参数 始终 无 2+ 默认 auto yes auto no auto |
不支持此 参数,一律 可缩放 | 完全 ok | 不支持 | |
FireFox | 1, 1.5弹窗 2.0+ 标签 |
全部 ok |
全部 left 相对父页面left top 相对屏 幕 |
默认无
yes 有 no 无
|
1, 1.5, 2 默认 无 yes 有(r) no 无 3+ 无视参数 始终有(r) |
不支持
|
无视参数 始终 有 |
无视参数
始终 无
|
2- 默认 否 yes 是 no 否 3+ 不支持此 参数,一律 可缩放. |
完全 ok
|
3.6- 不支持 4 支持 |
|
Safari | 3+弹窗 (Safari5 偏好设置 ,在标签中打开新 页面, 选项有-总是 ,永不,自动.默认是 永不.导致此问题.) | 3+ ok |
全部 left 相对父页面
(但当父窗体left的
位置导致新窗体不
能全部显示时,则
新窗体left,相对屏
幕为0,与ie7有些
相似)
top 相对屏幕
|
默认无
yes 有 no 无
|
默认 无 yes 有(w)(但 工具栏也有了) no 无 |
不支持
|
默认 无 yes 有 no 无
|
无视参数
始终 无
|
不支持此 参数,一律 可缩放
|
完全 ok
|
不支持
|
|
Opera | 9.2+ 弹窗 | 9.2tab
9.6+
标签(有宽高,可拖
拽.但无法离开父
窗口)
|
9.6+
相对父页面
的left,top
9.2标签
|
9.2tab 9.6+因其本质 是tab所以无视 此参数.一律无 toolbar |
9.2tab
9.6+因其本质 是tab所以无视 此参数.共享
location
|
不支持
|
9.2tab
9.6+因其本质 是tab所以无视 此参数.共享
statusbar
|
无视参数
始终 无
|
不支持此 参数,一律 可缩放
|
不支持
|
不支持
|
|
360安全 | 3.3+ 标签 3.612弹窗 |
3.612弹窗(无视 宽高参数parent 页面多大新弹窗 就多大) 其他版本 标签 |
3.612left top 和parent页面 有关,但位置算 法很混乱.
其他版本 标签
|
3.612 弹窗无视 一切参数.显示 一个完整窗口
其他版本 标签
|
.. | .. | .. | .. | .. | .. | .. | .. |
360高速 | 两种内核都 标签 | IE内核标签 chromium都 ok |
chromium
同chrome
其他内核 标签
|
..
|
.. | .. | .. | .. | .. | .. | .. | .. |
搜狗高速 | 两种内核都 标签 |
两种内核都 标签
|
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
TT | 标签 | 标签 |
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
QQ5 | 两种内核都 标签 |
两种内核都 标签
|
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
Maxthon2.5 | 标签 |
标签
|
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
Maxthon3 | 两种内核都 标签 | 两种内核都 标签 |
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
世界之窗 | 标签 |
标签
|
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
MyIe | 标签 |
标签
|
标签
|
.. | .. | .. | .. | .. | .. | .. | .. | .. |
ps:表中测试,有冲突的一些项目就不记录详细数据了,地方有限.意义不大.比如 location = no , toolbar=yes 或反之. Safari下 是只有有一个是yes就都会有. 而ie6则很有趣.会分的很细.