Frage

Nehmen wir an, ich einen Link oder eine Schaltfläche haben wollen, dass, wenn Benutzer darauf klicken, wird der Browser ohne Bestätigungsdialogfeld zu schließen.

Es muss in Internet arbeitet Explorer 6, 7, 8 und Firefox.

War es hilfreich?

Lösung

Ich habe einige Nachforschungen gemacht und herausgefunden, dass es nicht möglich ist, Fenster / Tab in Firefox zu schließen, wenn das Fenster / Tab nicht durch Javascript geöffnet wird oder wenn die Registerkarte haben Geschichte Seiten> 1 (dh Zurück-Taste angeklickt, weil Sie Konsultiert Webseiten).

Way in Firefox zu tun: zuerst die Geschichte löschen. Dann können Sie Fenster ohne Bestätigung Feld schließen. Ich habe diese Lösung nicht versucht. Ich bin zufällig über mehrere zuverlässige Seiten zu lesen, die beschreiben, wie dies zu tun.

Lösung für Internet Explorer 6, 7, 8.

Mit einer wenig Hilfe von Browser ermitteln Funktion: http://www.quirksmode.org/js /detect.html , hier ist, wie Fenster, ohne comfirmation Box für mehrere IE-Versionen zu schließen.

if ((userBrowser.browser == "Explorer" && (userBrowser.version == "8" || userBrowser.version == "7"))) {
        window.open('', '_self', '');
        window.close();
    } else if ((userBrowser.browser == "Explorer" && userBrowser.version == "6")) {
        window.opener = null;
        window.close();
    } else {
        window.opener = '';
        window.close(); // attempt to close window first, show user warning message if fails
        alert("To avoid data corruption/loss. Please close this window immedietly.");
    }

Ich weiß, dass einige von euch vielleicht denken, dass Browser erkennt, ist keine gute Idee. viele glauben auch, dass der Benutzer seine Fenster schließen eine schlechte Sache ist. Ich bin damit einverstanden, solche Idee. Aber ich brauche es nur wegen der Software-Anforderung wird uns gesagt, zu tun.

Hope, das hilft.

Andere Tipps

Das wäre eine wichtige Sicherheitsverletzung sein. Sie werden nie in der Lage sein, das zu tun.

Sie können jedoch nahe Kind Fenster hat die Eltern geöffnet. Sagen Sie bitte ein Popup mit einem übergeordneten Fenster geöffnet, die gleiche übergeordnetes Fenster eine Taste, um das Kind zu schließen haben. Nie den Browser.

Ich denke, einen Teil des hier Problems ist, dass Sie Ihr Ziel in der Frage unklar sind. Von Ihrem Kommentar zu Frankie Antwort, so scheint es, dass Sie nicht wirklich brauchen, um das Fenster überhaupt zu schließen, geben Sie einfach den Inhalt sichern müssen, die im Fenster zur Verfügung stand.

Hier ist, was ich empfehlen:

  1. Kill the angemeldet-in-Sitzung auf der Grundlage eines (serverseitig) Timeout. Wenn das Timeout abgelaufen ist, sollte ein erneutes Laden der Seite nur zur Login-Seite umgeleitet werden.
  2. Auf der Client-Seite in regelmäßigen Abständen überprüfen zu Timeout Bedingungen und Umleitung auf eine Anmeldeseite oder eine andere Paßt nicht-need-to-be-gesicherte Seite.

Ehrlich gesagt, es ist in der Regel besser, einen Benutzer auf Ihrer Website bis zu dem Moment zu halten, die auf die Registerkarte oder auf andere Weise sehen weg sowieso schließen -they- will. Nur umleiten sie auf eine Zielseite, die nicht sicher sein muss statt Schließen der Registerkarte zu erzwingen versucht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top