不同的网络浏览器以不同的方式处理 window.close() 函数。 IE 会提示用户进行确认,而 Firefox 和 Safari 则无法接受它,除非窗口最初是用 Javascript 打开的,并在控制台中显示一条消息说明同样的内容。
我支持的在我们组织内部使用的第三方 Web 应用程序在类似向导的一系列页面的末尾显示一个“关闭”按钮。这对于我们大多数用户使用的 IE 非常有效。然而,这在FF中显然失败了。我更愿意保留该按钮并使用 Javascript 来优雅地降级 UI,方法是不在任何不会执行 window.close() 的浏览器中显示该按钮。
根据经验,我会尽可能检查浏览器功能,而不是依赖基于浏览器检测的硬编码策略。有没有一种方法可以以编程方式检查对 window.close() 的支持,以便我可以确定是否应该首先显示该按钮?
尝试这个:
Demo: http://jsfiddle.net/ThinkingStiff/mnv87/ http://jsfiddle.net/ThinkingStiff/mnv87/
Script:
function hasClose() {
var close = window.open( '', '', 'height=100,width=100,left=3500', false );
close.close();
return close.closed;
};
if( hasClose() ) {
//show button
} else {
//hide button
};
Note hasClose()
也将回归false
如果弹出窗口被阻止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)