非常に単純なFirefox拡張機能を作成しようとしています。Firefoxウィンドウが開いたときにアラートボックスを表示するために必要です。ウィンドウを開いてもメッセージは表示されませんが、(Extensions Developer Add-Onを介して)すべてのChromeをリロードすると表示されます。
私のオーバーレイファイル:
<?xml version="1.0"?>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="application/x-javascript" src="chrome://adTest/content/alert.js" />
</overlay>
私のスクリプトファイル:
alert("HI!");
私のchrome.manifestファイル:
content adTest content/ contentaccessible=yes
overlay chrome://browser/content/browser.xul chrome://adTest/content/adTestOverlay.xul
テスト目的でXUL要素を追加し、アラートボックス以外はすべて機能したため、コードの残りの部分は正しいと確信しています。
alert()
アラートダイアログには完全に初期化された表示可能な親ウィンドウが必要なため、ブラウザウィンドウが実際に読み込まれて表示される前にを表示することはできません。ただし、オーバーレイスクリプトは、ロード/初期化中にすでに実行されます...
ブラウザコンソールにエラーが表示されるはずですNS_ERROR_NOT_AVAILABLE: Cannot call openModalWindow on a hidden window
(ただしalert
、load
イベントハンドラ内からが呼び出された場合にのみ発生します)。
したがって、最初にload
イベントを待ってから、イベントループに実際にウィンドウを表示する機会を与えます。
addEventListener("load", function() {
setTimeout(function() { alert("something"); }, 0);
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加