Heim >Web-Frontend >js-Tutorial >Warum kann JavaScript Windows in Chrome nicht immer schließen?
JavaScripts Fensterschließbeschränkungen in Chrome: Eine restriktive Sicherheitsmaßnahme
Während JavaScript window.close() und self.close() bietet Methoden zum Schließen von Fenstern sind bei diesen Tools in Chrome auf Hindernisse gestoßen, wo das Schließen von Fenstern mithilfe von Skripts nicht immer möglich ist unkompliziert.
Skriptgesteuerte Schließungskontrolle
Aus Sicherheitsgründen hat Chrome eine Richtlinie implementiert, die die Fähigkeit von JavaScript zum Schließen von Fenstern einschränkt. Das Schließen von Fenstern ist nur zulässig, wenn sie von demselben Skript erstellt wurden, das das Schließen aufruft. Diese Einschränkung verhindert, dass bösartige Skripte Fenster willkürlich schließen und die Benutzererfahrung stören.
Firefox-Einhaltung
Firefox hält sich bei allen Versuchen, Fenster über Skripte zu schließen, strikt an diese Einschränkung auf Fehler stoßen. Im Gegensatz dazu lässt Chrome eine Ausnahme für Benutzerskripte zu, jedoch ohne Bestätigungsaufforderungen.
Hacky Workarounds
Chromes Selbstumleitungs-Exploit ermöglichte einst das Schließen von Fenstern, diese Methode war jedoch nicht mehr möglich größtenteils blockiert. Eine mögliche Problemumgehung speziell für TamperMonkey besteht in der Verwendung von @grant window.close im Skript-Header. Dies gilt jedoch nicht für alle Fälle und erfordert frisch geöffnete Tabs ohne Browserverlauf.
Sicherheitsimplikationen und langfristige Lösungen
Die Sicherheitsrisiken durch window.close ohne entsprechende Einschränkungen machen es für den allgemeinen Gebrauch ungeeignet. Die empfohlene Lösung besteht darin, Chrome-Erweiterungen oder Firefox-Add-ons zu entwickeln, die Fenster zuverlässig schließen können. Greasemonkey und Tampermonkey könnten diese Funktionalität möglicherweise über API-Erweiterungen bereitstellen.
Als letzten Ausweg kann bei persönlichen Skripten das Deaktivieren der Einstellung „allow_scripts_to_close_windows“ in Firefox das Schließen von Fenstern ermöglichen. Allerdings ist Vorsicht geboten, da dies die Browsersicherheit untergräbt.
Das obige ist der detaillierte Inhalt vonWarum kann JavaScript Windows in Chrome nicht immer schließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!