首頁 >web前端 >js教程 >為什麼 JavaScript 無法始終關閉 Chrome 中的視窗?

為什麼 JavaScript 無法始終關閉 Chrome 中的視窗?

Linda Hamilton
Linda Hamilton原創
2024-12-15 09:55:14485瀏覽

Why Can't JavaScript Always Close Windows in Chrome?

Chrome 中JavaScript 的視窗關閉限制:限制性安全措施

雖然JavaScript 提供了window.close() 和self.close( )方法來關閉窗口,這些工具在Chrome 中遇到了障礙,在Chrome中,使用腳本關閉視窗並不總是有效

源自腳本的關閉控制

出於安全考慮,Chrome 實施了一項限制JavaScript 關閉視窗能力的策略。僅當視窗是由呼叫關閉的相同腳本建立時,它才允許關閉視窗。此限制可防止惡意腳本任意關閉視窗並破壞使用者體驗。

Firefox 遵守

Firefox 嚴格遵守此限制,任何從腳本關閉視窗的嘗試遇到錯誤。相較之下,Chrome 允許使用者腳本例外,但沒有確認提示。

Hacky Workarounds

Chrome 的自我重定向漏洞曾經允許關閉窗口,但此方法已被大部分被封鎖。一種針對 TamperMonkey 的潛在解決方法是在腳本標頭中使用 @grant window.close。然而,這並不適用於所有情況,並且需要新開啟的選項卡且沒有瀏覽歷史記錄。

安全影響和長期解決方案

帶來的安全風險window.close 沒有適當的限制使其不適合一般使用。推薦的解決方案是開發 Chrome 擴充功能或 Firefox 插件,它們可以可靠地關閉視窗。 Greasemonkey 和 Tampermonkey 可能透過 API 擴充功能提供此功能。

作為最後的手段,對於個人腳本,停用 Firefox 中的allow_scripts_to_close_windows 設定可以啟用視窗關閉。但是,應謹慎行事,因為這會破壞瀏覽器的安全性。

以上是為什麼 JavaScript 無法始終關閉 Chrome 中的視窗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn