ホームページ >ウェブフロントエンド >jsチュートリアル >`window.close()` と `self.close()` が Chrome Windows を閉じられないのはなぜですか?
Window.close と Self.close Chrome Windows を閉じるのに失敗する: 包括的な分析
window.close() または self.close の呼び出しJavaScript コード内の () を使用すると、Chrome でウィンドウを閉じることができない場合があります。この矛盾は、Chrome では、スクリプトで作成されたものでない限り、スクリプトがウィンドウを閉じることを禁止しているというよくある誤解から生じています。これは誤りですが、これらのメソッドは期待どおりに機能しない可能性があります。この記事では、根本的な理由を掘り下げ、考えられる解決策を検討します。
セキュリティ制限
最新のブラウザには、悪意のあるスクリプトがウィンドウを無差別に閉じることを防ぐセキュリティ対策が実装されています。 window.close() 仕様に従って、JavaScript は通常、同じスクリプトによって作成されていないウィンドウを閉じることは許可されていません。この制限は、セキュリティの悪用とユーザーの不便を抑制することを目的としています。
Firefox の実装
Firefox はこれらのセキュリティ ガイドラインを厳密に遵守し、スクリプトが開かれていないウィンドウを閉じることを明示的に禁止しています。スクリプト。 Greasemonkey/Tampermonkey スクリプトが Firefox で window.close() を使用しようとすると、次のエラー メッセージが表示されます。「スクリプトによって開かれていないウィンドウは、スクリプトによって閉じられない可能性があります。」
Chrome 実装
Chrome では、スクリプトで作成されていないウィンドウをスクリプトで閉じることができます。ただし、この例外は Greasemonkey や Tampermonkey などのユーザースクリプト コンテキストには適用されません。これらのコンテキストから window.close() を使用しようとすると、サイレントエラーが発生します。回避策
Chrome 拡張機能と Firefox アドオンは、閉じるための信頼できるソリューションを提供します。 Windows では、ユーザー向けのハッキングな回避策がありますスクリプト:Chrome:
Firefox:
長期的な解決策
最も信頼できるアプローチは、専用の Chrome 拡張機能または Firefox アドオンを作成することです。 window.close() を効果的に呼び出すことができます。あるいは、ユーザー スクリプト開発者は、組み込みのウィンドウを閉じる機能について Greasemonkey または Tampermonkey に機能リクエストを送信することを検討できます。以上が`window.close()` と `self.close()` が Chrome Windows を閉じられないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。