为什么无边窗口无法正常显示
作者:闪吧 类型:原创 来源:闪吧
为什么无边窗口无法正常显示
解决思路:
一般Chromeless窗口(也叫无边窗口)的实现过程: 先打开一个fullscreen(全屏)窗口,然后用resizeTo()方法重设该窗口尺寸为固定大小。然而,在IE6+SP1上,禁止了全屏窗口的 resizeTo() 方法。所以导致无边窗口无法正常显示。
具体步骤:
1.如果你的IE 版本是 6.0 并且打了 SP1,可以运行下面的代码看效果。
<script>
function fullwin(){
var win=window.open(’demo.htm’,"","fullscreen=1")
win.resizeTo(200,200)
}
</script>
<button onClick="fullwin()">测试</a>
2.这段代码在IE6或以下版本中测试正常,但在IE6.0+SP1下打开的仍然是全屏窗口,也就是说win.resizeTo(200,200)这句不起作用(其实如果你观察得足够仔细,可以看到在窗口打开后的一瞬间,窗口缩小为指定尺寸后又全屏)
3.在IE5.5以上版本的浏览器,可以用window.createPopup()方法模拟出无边窗口的效果,但 popup 窗口并不支持 iframe 内的动态页面,必须用
<object type="text/html" date="page.htm">
这种方法加载页面。
4.所以现在唯一的办法是判断客户端的IE版本,然后决定用那一种无边窗口:如果IE版本低于6.0,打开常规无边窗口,否则打开window.createPopup()方法模拟的无边窗口。
if(parseFloat(navigator.appVersion.match(/MSIE (\d\.*\d*)/i)[1])<6)
{打开常规无边窗口}
else
{打开popup模拟的无边窗口}
特别提示
由于 popup 窗口模拟的无边窗口的代码过于复杂庞大,所以附带在随书光盘的目录”/code/3”中。
因为IE的关系,目前还没有完美的解决办法,只有通过判断客户端 IE 版本来分别打开无边窗口。
解决思路:
一般Chromeless窗口(也叫无边窗口)的实现过程: 先打开一个fullscreen(全屏)窗口,然后用resizeTo()方法重设该窗口尺寸为固定大小。然而,在IE6+SP1上,禁止了全屏窗口的 resizeTo() 方法。所以导致无边窗口无法正常显示。
具体步骤:
1.如果你的IE 版本是 6.0 并且打了 SP1,可以运行下面的代码看效果。
<script>
function fullwin(){
var win=window.open(’demo.htm’,"","fullscreen=1")
win.resizeTo(200,200)
}
</script>
<button onClick="fullwin()">测试</a>
2.这段代码在IE6或以下版本中测试正常,但在IE6.0+SP1下打开的仍然是全屏窗口,也就是说win.resizeTo(200,200)这句不起作用(其实如果你观察得足够仔细,可以看到在窗口打开后的一瞬间,窗口缩小为指定尺寸后又全屏)
3.在IE5.5以上版本的浏览器,可以用window.createPopup()方法模拟出无边窗口的效果,但 popup 窗口并不支持 iframe 内的动态页面,必须用
<object type="text/html" date="page.htm">
这种方法加载页面。
4.所以现在唯一的办法是判断客户端的IE版本,然后决定用那一种无边窗口:如果IE版本低于6.0,打开常规无边窗口,否则打开window.createPopup()方法模拟的无边窗口。
if(parseFloat(navigator.appVersion.match(/MSIE (\d\.*\d*)/i)[1])<6)
{打开常规无边窗口}
else
{打开popup模拟的无边窗口}
特别提示
由于 popup 窗口模拟的无边窗口的代码过于复杂庞大,所以附带在随书光盘的目录”/code/3”中。
特别说明
因为IE的关系,目前还没有完美的解决办法,只有通过判断客户端 IE 版本来分别打开无边窗口。
责任编辑:kissall 时间:2005年8月29日
- 最近更新
