私のFirefoxアドオンには、ユーザーが閲覧している間開いたままになる小さな非モーダルウィンドウがあります。アドオンにはツールバーもあります。ツールバーのボタンを押すと、ウィンドウ内の特定の属性の値を設定する関数が呼び出されます。
これで、私のコードでは、関数を問題なく呼び出すことができますが、ウィンドウは変更されません。
ただし、onload
リスナーを使用して同じ関数を呼び出すと、そこで正常に機能します。関数にを入れてalert
呼び出されますが、変更がウィンドウに表示されません。
変更がウィンドウに表示されていることを確認するにはどうすればよいですか?これが私のサンプルコードの一部です:
var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
var mywindow = windowManager.getMostRecentWindow('mywindow');
if (mywindow) {
alert("found it!");
var thislabel = document.getElementById("mylabel");
thislabel.setAttribute("label", "New Text");
} else {
alert("The window is not open.");
}
}