如何closures浏览器窗口而不收到“是否要closures此窗口”提示?

如何closures浏览器窗口而不接收您是否要closures此窗口提示?

当我使用window.close(); function。

 window.open('', '_self', ''); window.close(); 

这对我有用。

我的朋友…有一种方法,但“黑客”并没有开始形容它。 你必须基本上利用IE 6和7中的错误。

每次工作!

而不是调用window.close() ,redirect到另一个页面。

打开页面:

 alert("No whammies!"); window.open("closer.htm", '_self'); 

redirect到另一个页面。 这个愚弄IE让你closures浏览器在这个页面上。

closures页面:

 <script type="text/javascript"> window.close(); </script> 

真棒吧?

脚本不允许closures用户打开的窗口。 这被认为是安全风险。 虽然它没有任何标准,但所有的浏览器厂商都遵循这个( Mozilla文档 )。 如果在某些浏览器中发生这种情况,那么(理想情况下)很快就会修补这个安全漏洞。

在这个问题的答案中没有任何工作了,如果有人会想出另一个肮脏的黑客,最终也会停止工作。

我build议你不要浪费精力来对抗这个问题,而是要接受浏览器如此帮助你的方法 – 在用户看起来崩溃之前询问用户。

这里是我用来closures浏览器的Javascriptfunction,没有提示或警告,它也可以从Flash调用。 它应该在html文件中。

  function closeWindows() { var browserName = navigator.appName; var browserVer = parseInt(navigator.appVersion); //alert(browserName + " : "+browserVer); //document.getElementById("flashContent").innerHTML = "<br>&nbsp;<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){ } } } 

在body标签中:

 <body onload="window.open('', '_self', '');"> 

closures窗口:

 <a href="javascript:window.close();"> 

在Safari 4.0.5,Mac 3.6的FF,IE 8.0和FF的Windows 3.5上testing

这适用于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不显示你想closures这个窗口的提示。

不幸的是,Firefox不可能closures窗口。

出于安全原因,只有在JavaScript打开的情况下才能closuresJavaScript。 要closures窗口,必须用_self作为目标打开一个新窗口,它将覆盖当前的窗口,然后closures该窗口(通过JavaScript打开后可以这样做)。

 window.open('', '_self', ''); window.close(); 

从这里 :

 <a href="javascript:window.opener='x';window.close();">Close</a> 

你需要设置window.opener的东西,否则它抱怨。

由于IE中的安全增强function,除非通过脚本打开,否则无法closures窗口。 所以解决这个问题的方法就是让浏览器认为这个页面是用脚本打开的,然后closures这个窗口。 以下是实施。

试试这个,它就像一个魅力!
javascriptclosures当前窗口,不提示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> 

javascriptclosures当前窗口,不提示IE

 window.opener=window; window.close(); 

创build一个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> 

在我的情况下,下面的代码被embedded到一个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代码并findvariables并将它们分配给一个适当的“值”,在我的例子中是“false”

浏览器正在抱怨,因为你正在使用JavaScriptclosures一个没有用JavaScript打开的窗口,例如window.open('foo.html');

我发现的最佳解决scheme是:

 this.focus(); self.opener=this; self.close(); 

将以下代码放在ASPX中。

 <script language=javascript> function CloseWindow() { window.open('', '_self', ''); window.close(); } </script> 

将下面的代码放在button单击事件后面的代码中。

 string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>"; Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript); 

如果你在closures之前没有任何处理,那么你可以直接把下面的代码放在ASPX本身的button点击标记中。

 OnClientClick="CloseWindow();" 

希望这可以帮助。

这将工作:

 <script type="text/javascript"> function closeWindowNoPrompt() { window.open('', '_parent', ''); window.close(); } </script> 

我要发布这个,因为这是我目前正在使用我的网站,它在谷歌浏览器和IE 10中都可以使用,而不会收到任何popup消息:

 <html> <head> </head> <body onload="window.close();"> </body> </html> 

我在我的网站上有一个function,我想运行保存开/关variables会话,而不直接进入一个新的页面,所以我只是打开一个小的popup式网页。 该网页然后立即closuresonload="window.close();" function。