Como posso fechar uma janela do navegador sem receber o prompt Deseja fechar esta janela ?
O prompt ocorre quando eu uso a window.close();
função.
javascript
browser
Derek
fonte
fonte
window.open('','_self').close()
Respostas:
window.open('', '_self', ''); window.close();
Isso funciona para mim.
fonte
showModalDialog
? Não funciona no IE10Meu amigo ... há uma maneira, mas "hack" não começa a descrevê-la. Basicamente, você tem que explorar um bug no IE 6 e 7.
Funciona sempre!
Em vez de chamar
window.close()
, redirecione para outra página.Página de abertura:
alert("No whammies!"); window.open("closer.htm", '_self');
Redirecione para outra página. Isso engana o IE para permitir que você feche o navegador nesta página.
Página de fechamento:
<script type="text/javascript"> window.close(); </script>
Incrível né ?!
fonte
Os scripts não têm permissão para fechar uma janela aberta por um usuário. Isso é considerado um risco de segurança. Embora não esteja em nenhum padrão, todos os fornecedores de navegadores seguem isso ( documentos do Mozilla ). Se isso acontecer em alguns navegadores, é um bug de segurança que (idealmente) é corrigido muito rapidamente.
Nenhum dos hacks nas respostas a esta pergunta funciona mais, e se alguém surgisse com outro hack sujo, eventualmente ele também pararia de funcionar.
Eu sugiro que você não gaste energia lutando contra isso e adote o método que o navegador oferece de forma tão útil - pergunte ao usuário antes de você aparentemente travar sua página.
fonte
Aqui está a função Javascript que uso para fechar o navegador sem Prompt ou Aviso, também pode ser chamada a partir do Flash. Deve estar em arquivo 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){ } } }
fonte
showModalDialog
. LigadocloseWindows
, abre uma nova janela (a mesma página) enquanto a anterior ainda está aberta.Isso funciona no Chrome 26, Internet Explorer 9 e Safari 5.1.7 ( sem o uso de uma página auxiliar, como resposta de Nick):
<script type="text/javascript"> window.open('javascript:window.open("", "_self", "");window.close();', '_self'); </script>
O aninhado
window.open
serve para fazer com que o IE não exiba a mensagem Deseja fechar esta janela prompt .Infelizmente, é impossível fazer o Firefox fechar a janela.
fonte
Na tag body:
<body onload="window.open('', '_self', '');">
Para fechar a janela:
<a href="javascript:window.close();">
Testado no Safari 4.0.5, FF para Mac 3.6, IE 8.0 e FF para Windows 3.5
fonte
Por razões de segurança, uma janela só pode ser fechada em JavaScript se tiver sido aberta por JavaScript. Para fechar a janela, você deve abrir uma nova janela com
_self
como destino, que sobrescreverá sua janela atual, e então fechá-la (o que você pode fazer já que foi aberta via JavaScript).window.open('', '_self', ''); window.close();
fonte
A partir daqui :
<a href="javascript:window.opener='x';window.close();">Close</a>
Você precisa definir
window.opener
algo, caso contrário, ele reclama.fonte
window.open('', '_self', '').close();
Lamento um pouco tarde aqui, mas encontrei a solução, pelo menos para o meu caso. Testado no Safari 11.0.3 e Google Chrome 64.0.3282.167
fonte
Por causa dos aprimoramentos de segurança no IE, você não pode fechar uma janela a menos que ela seja aberta por um script. Portanto, a maneira de contornar isso será deixar o navegador pensar que a página foi aberta usando um script e, em seguida, fechar a janela. Abaixo está a implementação.
Experimente, funciona como um encanto!
javascript fecha a janela atual sem prompt do 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>
javascript fecha a janela atual sem prompt do IE
fonte
Crie uma função JavaScript
<script type="text/javascript"> function closeme() { window.open('', '_self', ''); window.close(); } </script>
Agora escreva este código e chame a função JavaScript acima
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Ou simplesmente:
<a href="" onclick="closeme();">close</a>
fonte
Isso vai funcionar:
<script type="text/javascript"> function closeWindowNoPrompt() { window.open('', '_parent', ''); window.close(); } </script>
fonte
window.opener=window; window.close();
fonte
O navegador está reclamando porque você está usando JavaScript para fechar uma janela que não foi aberta com JavaScript, ou seja
window.open('foo.html');
.fonte
A melhor solução que encontrei é:
this.focus(); self.opener=this; self.close();
fonte
Coloque o seguinte código no ASPX.
<script language=javascript> function CloseWindow() { window.open('', '_self', ''); window.close(); } </script>
Coloque o código a seguir no código por trás do evento de clique do botão.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>"; Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Se você não tiver nenhum processamento antes de fechar, poderá colocar diretamente o seguinte código no próprio ASPX na tag de clique do botão.
OnClientClick="CloseWindow();"
Espero que isto ajude.
fonte
Na minha situação, o código a seguir foi embutido em um arquivo 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;
Então eu abri o console e escrevi o seguinte
PreventExitPop = false
Isso resolveu o problema. Portanto, descubra o código JavaScript e encontre a (s) variável (es) e atribua-lhes um "valor" apropriado que, no meu caso, era "falso"
fonte
Vou postar isso porque é o que estou usando atualmente no meu site e funciona no Google Chrome e no IE 10 sem receber nenhuma mensagem pop-up:
<html> <head> </head> <body onload="window.close();"> </body> </html>
Tenho uma função em meu site que desejo executar para salvar uma variável on / off para a sessão sem ir diretamente para uma nova página, então eu apenas abro uma pequena página pop-up. Essa página da web se fecha imediatamente com a
onload="window.close();"
função.fonte
a
comtarget=_blank
para abrir uma pequena janela pop-up em um url específico e, finalmente, uso JS para fechar a janela. O objetivo é que a url específica salve um valor para a sessão para desabilitar as imagens de fundo, embora aqui em breve irei excluí-la em favor do ajax assim que descobrir como fazer ajax. (ainda aprendendo as cordas persay)