Wie kann ich ein Browserfenster schließen, ohne die Eingabeaufforderung Möchten Sie dieses Fenster schließen ?
Die Eingabeaufforderung tritt auf, wenn ich die window.close();
Funktion verwende.
javascript
browser
Derek
quelle
quelle
window.open('','_self').close()
Antworten:
Das funktioniert bei mir.
quelle
showModalDialog
? Es funktioniert nicht auf IE10Skripte dürfen kein Fenster schließen, das ein Benutzer geöffnet hat. Dies wird als Sicherheitsrisiko angesehen. Obwohl dies in keinem Standard enthalten ist, befolgen alle Browser-Anbieter dies ( Mozilla-Dokumente ). Wenn dies in einigen Browsern passiert, handelt es sich um einen Sicherheitsfehler, der (im Idealfall) sehr schnell behoben wird.
Keiner der Hacks in den Antworten auf diese Frage funktioniert mehr, und wenn sich jemand einen anderen schmutzigen Hack einfallen lässt, funktioniert er schließlich auch nicht mehr.
Ich schlage vor, Sie verschwenden keine Energie, um dies zu bekämpfen, und nehmen die Methode an, die Ihnen der Browser so hilfreich bietet - fragen Sie den Benutzer, bevor Sie scheinbar seine Seite zum Absturz bringen.
quelle
Mein Freund ... es gibt einen Weg, aber "Hack" beginnt nicht, ihn zu beschreiben. Sie müssen grundsätzlich einen Fehler in IE 6 & 7 ausnutzen.
Funktioniert jedes Mal!
Anstatt anzurufen
window.close()
, leiten Sie zu einer anderen Seite weiter.Eröffnungsseite:
Auf eine andere Seite umleiten. Dies täuscht den IE vor, dass Sie den Browser auf dieser Seite schließen können.
Abschlussseite:
Genial, oder?!
quelle
Hier ist die Javascript-Funktion, mit der ich den Browser ohne Eingabeaufforderung oder Warnung schließe. Sie kann auch über Flash aufgerufen werden. Es sollte in einer HTML-Datei sein.
quelle
showModalDialog
. EincloseWindows
, Es öffnet sich ein neues Fenster (dieselbe Seite), während das vorherige noch geöffnet ist.Im Body-Tag:
So schließen Sie das Fenster:
Getestet auf Safari 4.0.5, FF für Mac 3.6, IE 8.0 und FF für Windows 3.5
quelle
Dies funktioniert in Chrome 26, Internet Explorer 9 und Safari 5.1.7 ( ohne die Verwendung einer Hilfeseite , ala Nicks Antwort):
Die Verschachtelung
window.open
besteht darin, dass der IE die Eingabeaufforderung " Möchten Sie dieses Fenster schließen" nicht anzeigt .Leider ist es nicht möglich, Firefox dazu zu bringen, das Fenster zu schließen.
quelle
Aus Sicherheitsgründen kann ein Fenster in JavaScript nur geschlossen werden, wenn es von JavaScript geöffnet wurde. Um das Fenster zu schließen, müssen Sie ein neues Fenster mit
_self
dem Ziel öffnen , das Ihr aktuelles Fenster überschreibt, und dieses dann schließen (was Sie tun können, seit es über JavaScript geöffnet wurde).quelle
Von hier aus :
Sie müssen sich
window.opener
auf etwas einstellen , sonst beschwert es sich.quelle
Entschuldigung, hier etwas spät, aber ich habe die Lösung gefunden, zumindest für meinen Fall. Getestet auf Safari 11.0.3 und Google Chrome 64.0.3282.167
quelle
Aufgrund der Sicherheitsverbesserungen im IE können Sie ein Fenster nur schließen, wenn es von einem Skript geöffnet wird. Der Weg dahin besteht darin, den Browser glauben zu lassen, dass diese Seite mit einem Skript geöffnet wird, und dann das Fenster zu schließen. Unten ist die Implementierung.
Versuchen Sie dies, es funktioniert wie ein Zauber!
Javascript aktuelles Fenster ohne Aufforderung IE schließen
Javascript aktuelles Fenster ohne Aufforderung IE schließen
quelle
Erstellen Sie eine JavaScript-Funktion
Schreiben Sie nun diesen Code und rufen Sie die obige JavaScript-Funktion auf
Oder einfach:
quelle
Das wird funktionieren :
quelle
quelle
Der Browser beschwert sich, weil Sie JavaScript verwenden, um ein Fenster zu schließen, das nicht mit JavaScript geöffnet wurde, d
window.open('foo.html');
. H.quelle
Die beste Lösung, die ich gefunden habe, ist:
quelle
Fügen Sie den folgenden Code in die ASPX ein.
Fügen Sie den folgenden Code in den Code hinter dem Klickereignis ein.
Wenn Sie vor dem Schließen keine Verarbeitung haben, können Sie den folgenden Code direkt in die ASPX selbst im Button-Click-Tag einfügen.
Hoffe das hilft.
quelle
In meiner Situation wurde der folgende Code in eine PHP-Datei eingebettet.
Also habe ich die Konsole geöffnet und folgendes geschrieben
Dies löste das Problem. Finden Sie also den JavaScript-Code heraus, suchen Sie die Variablen und weisen Sie sie einem geeigneten "Wert" zu, der in meinem Fall "falsch" war.
quelle
Ich werde dies veröffentlichen, da dies derzeit für meine Website verwendet wird und es sowohl in Google Chrome als auch in IE 10 funktioniert, ohne dass Popup-Nachrichten empfangen werden:
Ich habe eine Funktion auf meiner Site, die ich ausführen möchte, um eine Ein / Aus-Variable in einer Sitzung zu speichern, ohne direkt zu einer neuen Seite zu wechseln. Ich öffne einfach eine winzige Popup-Webseite. Diese Webseite schließt sich dann sofort mit der
onload="window.close();"
Funktion.quelle
a
mittarget=_blank
, um ein winziges Popup-Fenster mit einer bestimmten URL zu öffnen, und schließlich benutze ich JS, um das Fenster zu schließen. Der Zweck ist, dass die spezifische URL einen Wert für die Sitzung speichert, um Hintergrundbilder zu deaktivieren, obwohl ich sie hier bald zugunsten von Ajax löschen werde, sobald ich herausgefunden habe, wie Ajax ausgeführt wird. (lernt immer noch die Seile weiter)