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.

Como pode ser feito? Alguma sugestão?

Author: Fabian N., 2010-01-16

10 answers

Vai precisar do Javascript para fazer isto. Utilização 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.

 380
Author: cletus, 2016-04-23 06:54:49

Tenta isto

<a href="javascript:window.open('','_self').close();">close</a>
 215
Author: Daniel Shen, 2013-09-13 00:44:59

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>
 63
Author: Palesz, 2012-10-15 14:12:04
Pelo que sei, já não é possível em cromado ou FireFox. Ainda pode ser possível em IE (pelo menos pré-aresta).
 20
Author: Guy Schalnat, 2015-07-10 02:39:34
É possível. Procurei isto em toda a rede, mas uma vez, quando fiz uma pesquisa da microsoft, finalmente consegui a resposta.

Tenta isto:

window.top.close();

Isto irá fechar a página actual para si.

 16
Author: , 2014-12-20 20:24:37

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.
 6
Author: Julesfrog, 2013-02-11 15:15:31
Tenta isto também. A trabalhar para mim nos três maiores navegadores.
<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
 6
Author: Bhavin Shah, 2015-03-25 19:50:52

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.

 6
Author: Thailandian, 2015-04-01 09:39:48

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>
 0
Author: Mohsin Chaudhari, 2014-05-17 10:37:13

Aqui está como você criaria tal link:

<a href="javascript:if(confirm('Close window?'))window.close()">close</a>

 -2
Author: Eric Mickelsen, 2012-08-23 10:56:19