13

Firefox 拡張機能を作成しています...現在のタブでメニュー項目から URL を開くための JavaScript は何ですか?

たとえば、overlay.xul ファイルには次の行があります。

<menuitem label="Visit homepage" oncommand="window.location='http://www.somepage.com'"/>

しかしFirefoxでは、メニュー項目をクリックするとURLが開きますが、ブラウザのレイアウト全体が台無しになります。

これを行う正しい方法は何ですか?

4

4 に答える 4

9

ブラウジングした後、上記のコードを次のコードに置き換える必要があることがわかりました。

<menuitem label="Visit homepage" oncommand="content.wrappedJSObject.location='http://www.somepage.com'"/>
于 2008-11-23T16:32:12.907 に答える
8

menuitem からopenUILinkInを使用できます。次のように機能します。

openUILinkIn(url, where);

可能な場所:タブ、現在、ウィンドウ(および他のいくつかのめったに使用されないオプション)

ユーザーが押しているキーボード修飾子に基づいて異なる動作をさせたい場合は、別の関数whereToOpenLinkを使用できます。この関数は、ユーザーの設定と修飾子に基づいてタブ/現在/ウィンドウを返します。

openUILinkIn(url, whereToOpenLink(event));

したがって、私は使用します:

<menuitem label="Visit homepage" 
          oncommand="openUILinkIn('http://example.com/', whereToOpenLink(event))"/>

menuitem のコンテキストにない場合は、ラベルの HREF のリンクと開始を追加する別の組み込み XBL を確認することをお勧めします。

<label value="google" class="text-link" href="http://google.com/" />
于 2009-05-30T23:02:00.443 に答える
2
<menuitem label="Visit Report Site" oncommand="var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow('navigator:browser'); win.openUILinkIn('http://www.google.com', 'tab');"/>

新しいタブで URL を開きます。

于 2010-12-29T03:20:48.683 に答える
1

このJS関数をコマンドで呼び出します

//open a url current window:
function openUrl(url) {
content.wrappedJSObject.location = url;
newTabBrowser = gBrowser.selectedBrowser;
newTabBrowser.addEventListener("load", highlight, true);
}

//new tab
function openUrlNewTab(url) {
var win = Components.classes['@mozilla.org/appshell/window-mediator;1']
            .getService(Components.interfaces.nsIWindowMediator)
            .getMostRecentWindow('navigator:browser');
win.gBrowser.selectedTab = win.gBrowser.addTab(url);
}
于 2009-04-07T09:33:14.453 に答える