javascriptのwindow.close()chromeとfirefoxの下で失効する解決方法
1395 ワード
JavaScript原生はwindow.close()の方法を提供しています.見ただけでブラウザのウィンドウを閉じる方法です.
W 3 CScholは、この方法について以下のように説明する.
1.close()を実行する方法は、windowで指定されたトップブラウザのウィンドウを閉じます.
2.あるウィンドウは、self.close()メソッドを呼び出すか、または単にclose()メソッドを呼び出すことによって自身を閉じることができます.
3.JavaScriptコードで開かれたウィンドウだけがJavaScriptコードによって閉じられます.これは悪意のあるスクリプトがユーザのブラウザを終了するのを阻止するためです.
IEブラウザでは、window.close()は有効になりますが、有効になると警告情報を含む提示フレームをポップアップし、ウィンドウを閉じるかどうかを問い合わせることができます.
しかし、ChromeブラウザやFirefoxブラウザでは、この方法は全く効果がありません.ブレークポイントを使ってデバッグを行うと、この方法は実行できます.
chromeブラウザに対して、コードを以下のように修正することができます.
これはこの文を確認しました.JavaScriptコードを通じて開かれたウィンドウだけがJavaScriptコードによって閉じられます.
このコードはIEブラウザとChromeブラウザに対して有効ですが、Firefoxブラウザの下では無効です.Firefoxブラウザには以下のような操作が必要です.
1.Firefoxアドレスバーにabout:configを入力します.
2.設定リストにdom.allow_を見つけます.スクリプトto_クローズドwindows
3.右ボタンの選択切替をクリックして上のfalseをtrueに変更すればいいです.(デフォルトはfalseです.スクリプトがウィンドウをむやみに閉じないようにするためです.)
FireFoxブラウザでこのような設定をしたら、直接window.close()を使ってウィンドウを閉じることができます.
もちろんです.三つのブラウザの互換性のために、上の互換コードを書いたほうがいいです.
実際には、現在のフレームワークの様々なwindow.openは、この方法を放棄したり、互換性のある処理を完了しました.
なぜ今日この問題を記録したのかというと、最近13年の歴史がある古いプロジェクトのコードを維持しています.メンテナンスだけではなく、中に新しい機能を追加して、惨めな開発をしています.
あなたが苦労したすべてのことに対して申し訳がありません.
W 3 CScholは、この方法について以下のように説明する.
1.close()を実行する方法は、windowで指定されたトップブラウザのウィンドウを閉じます.
2.あるウィンドウは、self.close()メソッドを呼び出すか、または単にclose()メソッドを呼び出すことによって自身を閉じることができます.
3.JavaScriptコードで開かれたウィンドウだけがJavaScriptコードによって閉じられます.これは悪意のあるスクリプトがユーザのブラウザを終了するのを阻止するためです.
IEブラウザでは、window.close()は有効になりますが、有効になると警告情報を含む提示フレームをポップアップし、ウィンドウを閉じるかどうかを問い合わせることができます.
しかし、ChromeブラウザやFirefoxブラウザでは、この方法は全く効果がありません.ブレークポイントを使ってデバッグを行うと、この方法は実行できます.
chromeブラウザに対して、コードを以下のように修正することができます.
window.open('', '_self', '');
window.close();
まずwindow.openを通して、このウィンドウで一つのページを開けてから、window.closeを通じて(通って)閉じます.これはこの文を確認しました.JavaScriptコードを通じて開かれたウィンドウだけがJavaScriptコードによって閉じられます.
このコードはIEブラウザとChromeブラウザに対して有効ですが、Firefoxブラウザの下では無効です.Firefoxブラウザには以下のような操作が必要です.
1.Firefoxアドレスバーにabout:configを入力します.
2.設定リストにdom.allow_を見つけます.スクリプトto_クローズドwindows
3.右ボタンの選択切替をクリックして上のfalseをtrueに変更すればいいです.(デフォルトはfalseです.スクリプトがウィンドウをむやみに閉じないようにするためです.)
FireFoxブラウザでこのような設定をしたら、直接window.close()を使ってウィンドウを閉じることができます.
もちろんです.三つのブラウザの互換性のために、上の互換コードを書いたほうがいいです.
実際には、現在のフレームワークの様々なwindow.openは、この方法を放棄したり、互換性のある処理を完了しました.
なぜ今日この問題を記録したのかというと、最近13年の歴史がある古いプロジェクトのコードを維持しています.メンテナンスだけではなく、中に新しい機能を追加して、惨めな開発をしています.
あなたが苦労したすべてのことに対して申し訳がありません.