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中文網其他相關文章!