Como fechar a página actual numa janela de navegação?
quero criar uma ligação numa página web que feche a página activa de momento num navegador sem fechar outras páginas no navegador.
Quando o utilizador clica na ligação próxima, deve aparecer uma mensagem de alerta a pedir ao utilizador para confirmar com dois botões, "Sim" e "não". Se o usuário clica "sim", feche essa página e se" não", não faça nada.
10 answers
window.close()
:
close();
Nota: a página actual está implícita. Isto é equivalente:
window.close();
Ou pode indicar uma janela diferente.
Então:
function close_window() {
if (confirm("Close Window?")) {
close();
}
}
Com HTML:
<a href="javascript:close_window();">close</a>
Ou:
<a href="#" onclick="close_window();return false;">close</a>
Você return false
aqui para evitar o comportamento padrão para o evento. Caso contrário, o navegador vai tentar ir para essa URL (que obviamente não é).
Agora as opções sobre o window.confirm()
a caixa de diálogo ficará OK e cancelará (Não Sim e não). Se você Realmente quiser Sim e não, terá de criar algum tipo de janela de Javascript modal.
Nota: existem diferenças específicas com o navegador acima. Se você abriu a janela com Javascript (via window.open()
) então você pode fechar a janela com javascript. O Firefox não te permite fechar outras janelas. Eu acredito que IE vai pedir ao Usuário para confirmação. Outros navegadores podem variar.
Tenta isto
<a href="javascript:window.open('','_self').close();">close</a>
Este método funciona em cromado e IE:
<a href="blablabla" onclick="setTimeout(function(){var ww = window.open(window.location, '_self'); ww.close(); }, 1000);">
If you click on this the window will be closed after 1000ms
</a>
Tenta isto:
window.top.close();
Isto irá fechar a página actual para si.
Testado com sucesso em FF 18 e cromado 24:
Inserir na cabeça:
<script>
function closeWindow() {
window.open('','_parent','');
window.close();
}
</script>
HTML:
<a href="javascript:closeWindow();">Close Window</a>
Os créditos vão para Marcos J. Drake.
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
O seguinte funciona para mim no cromo 41:
function leave() {
var myWindow = window.open("", "_self");
myWindow.document.write("");
setTimeout (function() {myWindow.close();},1000);
}
Tentei várias ideias para a FF, incluindo abrir uma página na internet, mas nada parece funcionar. Tanto quanto sei, qualquer navegador irá fechar uma página ou janela com o xxx.close() se for realmente aberto por JS, mas o FF, pelo menos, não pode ser enganado para fechar uma página ao abrir um novo conteúdo dentro dessa página.
Isso faz sentido quando se pensa nisso - um utilizador pode muito bem não querer que o JS feche uma página ou janela que tenha história útil.
Esta é uma maneira de resolver o mesmo, declarar uma função JavaScript como esta
<script>
function Exit() {
var x=confirm('Are You sure want to exit:');
if(x) window.close();
}
</script>
Adicione a seguinte linha ao HTML para chamar a função usando um <button>
<button name='closeIt' onClick="Exit()" >Click to exit </Button>
Aqui está como você criaria tal link:
<a href="javascript:if(confirm('Close window?'))window.close()">close</a>