我需要关闭显示我的网页的标签,只需点击一下按钮即可。但是只要没有通过javascript打开,firefox就不允许通过javascript关闭窗口。
如果我将dom.allow_scripts_to_close_windows
的值设置为“true”,那么即使是正常window.close()
也可以。但这不是一个好的解决方案。 :(
我在其中一个论坛中尝试了以下解决方法:
<script language="javascript" type="text/javascript">
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
它应该欺骗浏览器以为它实际上是由javascript打开的,但这在Firefox 3中不起作用。
任何人都可以建议一个解决方法吗?
答案 0 :(得分:10)
function closeWindow() {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
alert("This will close the window");
window.open('','_self');
window.close();
}
closeWindow();
答案 1 :(得分:7)
出于安全原因,您的脚本无法关闭它未打开的窗口/选项卡。
解决方案是在导航历史记录的较早点显示年龄提示。然后,您可以根据他们的输入选择允许他们进入您的网站。
您可以简单地说“抱歉”,或者将用户重定向到他们的主页,而不是关闭显示提示的页面。
答案 2 :(得分:6)
此代码适用于IE 7和最新版本的Mozilla,尽管mozilla中的默认设置不允许通过javascript关闭窗口。
以下是代码:
功能F11() { window.open( '', '_父', ''); window.open(“login.aspx”,“”,“channelmode”); window.close()的; }
更改默认设置:
1.在firefox地址栏中输入“about:config”并输入;
2.确保您的“dom.allow_scripts_to_close_windows”为真
答案 3 :(得分:2)
self.close()不起作用,您确定关闭窗口而不是脚本生成弹出窗口吗?
你们可能想看看这个:https://bugzilla.mozilla.org/show_bug.cgi?id=183697
答案 4 :(得分:1)
从用户体验的角度来看,您不希望被动地执行主要操作。
像窗口关闭这样的主要事物应该是用户操作的结果。
答案 5 :(得分:1)
如果浏览器人员将此视为安全性和/或可用性问题,那么您的问题的答案就是不要关闭窗口,因为根据定义,他们会为您的解决方法提供解决方案。关于为什么选择在firefox错误数据库https://bugzilla.mozilla.org/show_bug.cgi?id=190515#c70
中的原因有一个很好的总结。那你能做什么?
更改您网站的规格,以便为这些人提供解决方案。例如,您可以将其视为将其指向合作伙伴的机会。
也就是说,将其视为(可能)需要它的其他人的传递。例如,Hanselman最近有一篇关于在其他类似情况下该怎么做的文章,即404错误:http://www.hanselman.com/blog/PutMissingKidsOnYour404PageEntirelyClientSideSolutionWithYQLJQueryAndMSAjax.aspx
答案 6 :(得分:1)
这段代码肯定会解决这个问题
function closing() {
var answer = confirm("Do you wnat to close this window ?");
if (answer){
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');
window.close();
}
else{
stop;
}
}