村长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

以下出自: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 为窗口参数(各参数用逗号分隔)
三、示例:
<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 | 窗口被激活后是否浮在其它窗口之上
......
window.open 浏览器差异.
 
首先引入 w3help的,莫的测试: 原帖地址:http://www.w3help.org/zh-cn/causes/BX1053
 
w3help的测试,和我的测试相互补充,应该比较完整了.悲剧的是我做完测试后,和莫提了一嘴,他告诉我w3help有啊. 我累个去.咋不早说.我可以省不少事呢.
 
建议先看看w3help的.内容比较详细.尤其是据说 window.open,这种宿主方法.居然,可能在将来被html5所统一.期待啊.
 

浏览器实现差异:

    
           .一个open的窗口被拦截后, Opera11- ,Chrome11-仍然会有窗口句柄. 而Safari是undefined ,IEFirefox则是 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则很有趣.会分的很细.
 
 
 
 
 

 
 
 
 

  

 

   第二参数target(name)相关:         

posted on 2012-01-31 13:55  Say No  阅读(206)  评论(0编辑  收藏  举报