ホームページ >ウェブフロントエンド >jsチュートリアル >Chrome では JavaScript が常に Windows を閉じることができないのはなぜですか?

Chrome では JavaScript が常に Windows を閉じることができないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-15 09:55:14489ブラウズ

Why Can't JavaScript Always Close Windows in Chrome?

Chrome における JavaScript のウィンドウ クローズの制限: 制限的なセキュリティ対策

JavaScript では window.close() と self.close() が提供されています。ウィンドウを閉じるためのメソッドを使用すると、これらのツールは Chrome で障害に遭遇し、スクリプトを使用してウィンドウを閉じることが常にできるわけではありません。

スクリプトによるクロージャ コントロール

セキュリティ上の懸念により、Chrome は JavaScript がウィンドウを閉じる機能を制限するポリシーを実装しました。ウィンドウがクロージャを呼び出す同じスクリプトによって作成された場合にのみ、ウィンドウを閉じることが許可されます。この制限により、悪意のあるスクリプトがウィンドウを恣意的にシャットダウンし、ユーザー エクスペリエンスを妨害することが防止されます。

Firefox の遵守

Firefox は、スクリプトからウィンドウを閉じようとする場合、この制限を厳密に遵守します。エラーが発生します。対照的に、Chrome ではユーザー スクリプトの例外が許可されていますが、確認プロンプトは表示されません。

Hacky Workarounds

Chrome の自己リダイレクトの悪用により、かつてはウィンドウを閉じることができましたが、この方法は現在では使用されていません。ほとんどブロックされています。 TamperMonkey に特有の潜在的な回避策の 1 つは、スクリプト ヘッダーで @grant window.close を使用することです。ただし、これはすべてのケースに適用されるわけではなく、閲覧履歴のない新しく開いたタブが必要です。

セキュリティへの影響と長期的な解決策

によってもたらされるセキュリティ リスク適切な制限がない window.close は、一般的な使用には適していません。推奨される解決策は、ウィンドウを確実に閉じることができる Chrome 拡張機能または Firefox アドオンを開発することです。 Greasemonkey と Tampermonkey は、API 拡張機能を通じてこの機能を提供する可能性があります。

個人スクリプトの場合、最後の手段として、Firefox のallow_scripts_to_close_windows 設定を無効にすると、ウィンドウを閉じることができるようになります。ただし、これはブラウザのセキュリティを損なうため、注意が必要です。

以上がChrome では JavaScript が常に Windows を閉じることができないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。