0

サルヴェテ!jsファイルの1つに、メインのブラウザウィンドウからURLを取得する関数があります。私のアドオンはツールバーです。この関数は、ツールバーのjavascriptから呼び出されたときに正常に機能します。

ただし、この関数(ウィンドウロードリスナーを介して呼び出される)を使用する別のダイアログウィンドウ(xulを介して)もありますが、呼び出されると、関数は起動しますが、次のようになりますTypeError: window.content is null

function GetTheBrowserUrl(){
var browserwindow = window.top.getBrowser().selectedBrowser.contentWindow.location.href;
return browserwindow;
//return getBrowser().contentWindow.location.href;
}

では、ダイアログウィンドウからこれを機能させるにはどうすればよいですか?ダイアログウィンドウから関数を呼び出すには、何らかの方法でブラウザウィンドウのハンドルを取得する必要があるようです。

4

1 に答える 1

1
var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
         .getService(Components.interfaces.nsIWindowMediator);
var window = wm.getMostRecentWindow("navigator:browser");
return window.gBrowser.contentWindow.location.href
于 2012-11-30T18:13:36.283 に答える