如何关闭浏览器窗口而不收到是否要关闭此窗口提示?
使用该window.close();
功能时出现提示。
window.open('', '_self', ''); window.close();
这对我有用。
不允许脚本关闭用户打开的窗口。这被认为是一种安全风险。尽管它没有任何标准,但所有浏览器供应商都遵循这一点(Mozilla 文档)。如果在某些浏览器中发生这种情况,这是一个安全漏洞(理想情况下)会很快得到修补。
这个问题的答案中的任何黑客都不再有效,如果有人想出另一个肮脏的黑客,最终它也会停止工作。
我建议您不要为此浪费精力,而是采用浏览器为您提供的非常有用的方法——在您看似崩溃他们的页面之前询问用户。
我的朋友......有一种方法,但“hack”并没有开始描述它。您必须基本上利用 IE 6 和 7 中的错误。
每次都有效!
而不是调用window.close()
,重定向到另一个页面。
打开页面:
alert("No whammies!");
window.open("closer.htm", '_self');
重定向到另一个页面。这会欺骗 IE,让您关闭此页面上的浏览器。
关闭页面:
<script type="text/javascript">
window.close();
</script>
厉害吧?!
这是我用来在没有提示或警告的情况下关闭浏览器的 Javascript 函数,它也可以从 Flash 调用。它应该在 html 文件中。
function closeWindows() {
var browserName = navigator.appName;
var browserVer = parseInt(navigator.appVersion);
//alert(browserName + " : "+browserVer);
//document.getElementById("flashContent").innerHTML = "<br> <font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";
if(browserName == "Microsoft Internet Explorer"){
var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
if (ie7)
{
//This method is required to close a window without any prompt for IE7 & greater versions.
window.open('','_parent','');
window.close();
}
else
{
//This method is required to close a window without any prompt for IE6
this.focus();
self.opener = this;
self.close();
}
}else{
//For NON-IE Browsers except Firefox which doesnt support Auto Close
try{
this.focus();
self.opener = this;
self.close();
}
catch(e){
}
try{
window.open('','_self','');
window.close();
}
catch(e){
}
}
}
这适用于 Chrome 26、Internet Explorer 9 和 Safari 5.1.7(不使用帮助页面,ala Nick 的回答):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
嵌套window.open
是为了让IE不显示你要关闭这个窗口的提示。
不幸的是,不可能让 Firefox 关闭窗口。
在正文标签中:
<body onload="window.open('', '_self', '');">
要关闭窗口:
<a href="javascript:window.close();">
在 Safari 4.0.5、FF for Mac 3.6、IE 8.0 和 FF for Windows 3.5 上测试
出于安全原因,只有在 JavaScript 中打开的窗口才能在 JavaScript 中关闭。为了关闭窗口,您必须打开一个_self
以目标为目标的新窗口,这将覆盖您当前的窗口,然后关闭该窗口(您可以这样做,因为它是通过 JavaScript 打开的)。
window.open('', '_self', '');
window.close();
window.open('', '_self', '').close();
抱歉在这里有点晚了,但我找到了解决方案,至少对于我的情况。在 Safari 11.0.3 和 Google Chrome 64.0.3282.167 上测试
由于 IE 中的安全增强功能,您无法关闭窗口,除非它是由脚本打开的。所以解决这个问题的方法是让浏览器认为这个页面是使用脚本打开的,然后关闭窗口。下面是实现。
试试这个,它就像一个魅力!
javascript在不提示IE的情况下关闭当前窗口
<script type="text/javascript">
function closeWP() {
var Browser = navigator.appName;
var indexB = Browser.indexOf('Explorer');
if (indexB > 0) {
var indexV = navigator.userAgent.indexOf('MSIE') + 5;
var Version = navigator.userAgent.substring(indexV, indexV + 1);
if (Version >= 7) {
window.open('', '_self', '');
window.close();
}
else if (Version == 6) {
window.opener = null;
window.close();
}
else {
window.opener = '';
window.close();
}
}
else {
window.close();
}
}
</script>
从这里:
<a href="javascript:window.opener='x';window.close();">Close</a>
你需要设置window.opener
一些东西,否则它会抱怨。
window.opener=window;
window.close();
创建一个 JavaScript 函数
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
现在编写这段代码并调用上面的 JavaScript 函数
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
或者简单地说:
<a href="" onclick="closeme();">close</a>
这将起作用:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
在我的情况下,以下代码被嵌入到一个 php 文件中。
var PreventExitPop = true;
function ExitPop() {
if (PreventExitPop != false) {
return "Hold your horses! \n\nTake the time to reserve your place.Registrations might become paid or closed completely to newcomers!"
}
}
window.onbeforeunload = ExitPop;
所以我打开控制台并写下以下内容
PreventExitPop = false
这解决了问题。因此,找出 JavaScript 代码并找到变量并将它们分配给适当的“值”,在我的情况下是“假”
浏览器抱怨是因为您使用 JavaScript 关闭了一个不是用 JavaScript 打开的窗口,即window.open('foo.html');
.
将以下代码放在 ASPX 中。
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
将以下代码放在按钮单击事件后面的代码中。
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
如果您在关闭之前没有任何处理,那么您可以直接将以下代码放入 ASPX 本身的按钮单击标记中。
OnClientClick="CloseWindow();"
希望这可以帮助。
我找到的最佳解决方案是:
this.focus();
self.opener=this;
self.close();
我将发布此内容,因为这是我目前用于我的网站的内容,它在 Google Chrome 和 IE 10 中都可以使用,而不会收到任何弹出消息:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
我的网站上有一个函数,我想运行它来将开/关变量保存到会话,而不直接进入新页面,所以我只打开一个小弹出网页。然后该网页会立即使用该onload="window.close();"
功能自行关闭。