0

私の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.");
    }
}
4

1 に答える 1

1

私はここでちょっと推測していますが、おそらくあなたは正しい文書にアクセスする必要がありますか?

var thislabel = mywindow.document.getElementById("mylabel");

// alert something if the element was found
thislabel !== null && alert('found');
于 2012-12-01T16:49:47.923 に答える