web-dev-qa-db-de.com

Aktuelle Registerkarte schließen

Ich habe auf meiner Webseite einen engen Link. Ich möchte es so einstellen, dass beim Klicken die aktuelle Registerkarte geschlossen wird. Ich habe geschrieben

<a href="#" onclick = "javascript:self.close();">close</a>

Der obige Code scheint in Internet Explorer gut zu funktionieren. Aber es funktioniert nicht in Mozilla Firefox und Google Chrome. Bitte hilf mir, das zu lösen.

28
uvinod

Sie können nur Fenster/Tabs schließen, die Sie selbst erstellen. Das heißt, Sie können ein Fenster/eine Registerkarte, die der Benutzer erstellt, nicht programmgesteuert schließen.

Wenn Sie beispielsweise ein Fenster mit window.open() erstellen, können Sie es mit window.close() schließen.

31
Brian Ustas

Ab Chrome 46 führt eine einfache onclick=window.close() den Trick aus. Dies schließt nur die Registerkarte und nicht den gesamten Browser, wenn mehrere Registerkarten geöffnet sind.

5
Adam M

Sie können unten JavaScript verwenden.

window.open('','_self').close();

In einem HTML-Code können Sie den folgenden Code verwenden

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

Ich habe dies in Chrome 61 und IE11 ausprobiert, es funktioniert gut. Dies funktioniert jedoch nicht mit Firefox 57 ..__ In Firefox können wir nur Fenster schließen, die mit dem folgenden Befehl geöffnet wurden.

window.open()
1

Ich habe einen Einzeiler gefunden, der in Chrome 66 funktioniert: http://www.yournewdesigner.com/css-experiments/javascript-window-close-firefox.html

TLDR: Trifft den Browser dazu, dass JavaScirpt den aktuellen Tab/das aktuelle Fenster geöffnet hat

window.open('', '_parent', '').close();

Also zur Vollständigkeit 

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

Es sei jedoch auch darauf hingewiesen, dass Leser diese Funktion in eine Funktion einordnen möchten, bei der Fingerabdrücke, die Browser für solche Tricks benötigen, da Firefox 59 nicht mit dem oben genannten funktioniert.

0
S0AndS0