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 actif actuel dans un navigateur sans fermer d'autres onglets dans le navigateur. Lorsque l'utilisateur clique sur le lien étroit, un message d'alerte devrait apparaître en demandant à l'utilisateur de confirmer avec deux boutons, "OUI" et "NON". Si l'utilisateur clique sur "OUI", fermez cette page et Si "NON", ne faites rien.

Comment ceci peut être fait? Aucune suggestion?

Vous aurez besoin de Javascript pour ce faire. Utilisez window.close() :

 close(); 

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

 window.close(); 

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

Alors:

 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 éviter 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 de la boîte de dialogue window.confirm() seront OK et Annuler (pas Oui et Non). Si vous voulez vraiment oui et non, vous devrez créer une sorte de boîte de dialogue modal Javascript.

Remarque: il existe des différences spécifiques au navigateur ci-dessus. Si vous avez ouvert la fenêtre avec Javascript (via window.open() ), vous pouvez fermer la fenêtre avec javascript. Firefox vous interdit de fermer d'autres fenêtres. Je crois que IE demandera à l'utilisateur la confirmation. D'autres navigateurs peuvent varier.

Essaye ça

 <a href="javascript:window.open('','_self').close();">close</a> 

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> 

Pour autant que je puisse le dire, il n'est plus possible dans Chrome ou FireFox. Il est toujours possible dans IE (au moins pré-Edge).

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

essaye ça:

 window.top.close(); 

Cela fermera l'onglet actuel pour vous.

Essayez aussi. Travaillant 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> 

Ce qui suit fonctionne 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. Dans la mesure où je comprends, tout navigateur fermera un onglet ou une fenêtre avec xxx.close () s'il a été vraiment ouvert par JS, mais FF, du moins, ne peut pas être dupé pour fermer un onglet en ouvrant de nouveaux contenus à l'intérieur de cet onglet.

Cela a du sens lorsque vous en pensez – un utilisateur pourrait bien ne pas vouloir que JS ferme un onglet ou une fenêtre qui a un historique utile.

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 à Marcos J. Drake .

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

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

Ajoutez la ligne suivante au HTML pour appeler la fonction en utilisant un <button>

 <button name='closeIt' onClick="Exit()" >Click to exit </Button> 

Voici comment créer un tel lien:

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