最近在做一个项目时候,碰到一个浏览器兼容性问题。当我在一个页面提交结束后,想在几秒内自动关闭该窗体。在IE下没有问题,可是在火狐下不能自动关闭窗体。在网上找了很多自称兼容个IE、火狐的解决办法。都不能解决此问题!(有提到修改火狐浏览器配置:在about:config中,这种方式不好,准不能提示用户自己去修改这个配置吧!)
就在我准备放弃的时候,找到一个帖子。说道如果是window.open()打开的窗体,则window.close();方式也是可以关闭的。因为我之前这个窗体是<a href="XX.aspx" />这种方式打开的,因此我换成window.open()打开。如下:
<a href="#" onclick="openwin()" style=" display:block; width:180px; height:40px"></a>
脚本:
function openwin() { var w = screen.availWidth - 10; var h = screen.availHeight - 30; window.open(XX.aspx', "win", "fullscreen=0,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=yes,resizable=1,width=" + w + ",height=" + h + ",top=0,left=0", true); }
这样打开的新窗体,在xx.aspx中,
function closeme() { var browserName = navigator.appName; if (browserName == "Netscape") { window.open('', '_parent', ''); window.close(); } else if (browserName == "Microsoft Internet Explorer") { window.opener = "whocares"; window.close(); } }
调用就ok了