Comment fermer l'onglet actuel dans une fenêtre de navigateur?

Je veux créer un lien sur une page Web qui fermerait l'onglet actuellement actif dans un navigateur sans fermer d'autres onglets dans le navigateur.
Lorsque l'utilisateur clique sur le lien de fermeture, un message d'alerte devrait apparaître demandant à l'utilisateur de confirmer avec deux boutons, " Oui "et"non". Si l'utilisateur clique sur "Oui", fermez cette page et si "non", ne rien faire.

Comment cela peut-il être fait? Toutes les suggestions?

331
demandé sur Fabian N. 2010-01-16 08:25:59

10 réponses

Vous aurez besoin de Javascript pour le faire. Utilisation window.close():

close();

Remarque: l'onglet actuel est implicite. Ceci est équivalent:

window.close();

Ou vous pouvez spécifier une fenêtre différente.

Donc:

function close_window() {
  if (confirm("Close Window?")) {
    close();
  }
}

Avec HTML:

<a href="javascript:close_window();">close</a>

Ou:

<a href="#" onclick="close_window();return false;">close</a>

Vous return false ici pour empêcher le comportement par défaut de l'événement. Sinon, le navigateur tentera d'accéder à cette URL (ce qui n'est évidemment pas le cas).

Maintenant les options sur la window.confirm() boîte de dialogue sera OK et annuler (pas oui et non). Si vousvoulez vraiment oui et non, vous devrez créer une sorte de boîte de dialogue JavaScript modale.

Remarque: Il existe des différences spécifiques au navigateur avec ce qui précède. Si vous avez ouvert la fenêtre avec Javascript (via window.open()), Vous êtes autorisé à fermer la fenêtre avec javascript. Firefox vous interdit de fermer d'autres fenêtres. Je crois que IE demandera à l'utilisateur de confirmer. D'autres navigateurs peuvent varier.

380
répondu cletus 2016-04-23 06:54:49

Essayez ceci

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

Cette méthode fonctionne dans Chrome et 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
répondu Palesz 2012-10-15 14:12:04

Pour autant que je sache, ce N'est plus possible dans Chrome ou FireFox. Cela peut encore être possible dans IE (au moins pré-Edge).

20
répondu Guy Schalnat 2015-07-10 02:39:34

C'est possible. J'ai cherché tout le net pour cela, mais une fois quand j'ai pris l'un des sondages de microsoft, j'ai finalement eu la réponse.

Essayez ceci:

window.top.close();

Cela fermera l'onglet actuel pour vous.

16
répondu 2014-12-20 20:24:37

Testé avec succès dans FF 18 et Chrome 24:

Insérer dans la tête:

<script>
    function closeWindow() {
        window.open('','_parent','');
        window.close();
    }
</script> 

HTML:

<a href="javascript:closeWindow();">Close Window</a>

Les Crédits vont à J. Marcos Drake.

6
répondu Julesfrog 2013-02-11 15:15:31

Essayez ceci aussi. Travailler pour moi sur les trois principaux navigateurs.

<!-- saved from url=(0014)about:internet -->
<a href="#" onclick="javascript:window.close();opener.window.focus();" >Close Window</a>
6
répondu Bhavin Shah 2015-03-25 19:50:52

Ce qui suit fonctionne pour moi dans Chrome 41:

function leave() {
  var myWindow = window.open("", "_self");
  myWindow.document.write("");
  setTimeout (function() {myWindow.close();},1000);
}

J'ai essayé plusieurs idées pour FF, y compris l'ouverture d'une page Web réelle, mais rien ne semble fonctionner. Pour autant que je comprenne, tout navigateur fermera un onglet ou une fenêtre avec xxx.close() s'il a été vraiment ouvert par JS, mais FF, au moins, ne peut pas être dupé en fermant un onglet en ouvrant un nouveau contenu dans cet onglet.

Cela a du sens quand vous y réfléchissez - un utilisateur peut bien ne pas vouloir que JS ferme un onglet ou une fenêtre qui a utile de l'histoire.

6
répondu Thailandian 2015-04-01 09:39:48

C'est une façon de résoudre la même chose, déclarer une fonction JavaScript comme ceci

<script>
  function Exit() {
     var x=confirm('Are You sure want to exit:');
     if(x) window.close();
   }
</script>

Ajoutez la ligne suivante au code HTML pour appeler la fonction à l'aide d'un <button>

<button name='closeIt' onClick="Exit()" >Click to exit </Button>
0
répondu Mohsin Chaudhari 2014-05-17 10:37:13

Voici comment créer un tel lien:

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

-2
répondu Eric Mickelsen 2012-08-23 10:56:19