1

私はfriefoxサイドバー拡張機能を持っています。ツールバー アイコンをクリックして開いた場合は、Web ページ (私が作成したもの) をロードします。ここで、ユーザーが Web ページのリンク (サイドバーにロードされたもの) をクリックすると、リンクされた Web ページがメイン ウィンドウの新しいタブで開きます。私は自分のウェブページのマークアップでこれを試しました:

<a target="_content" href="http://www.google.com">Google</a>

ただし、リンクは、新しいタブではなく、フォーカスのあるタブで開きます。

助けてください。

ありがとう。

4

3 に答える 3

2

代わりに target="_blank" を使用すると、FF (バージョン 3) が新しいタブを開くはずです。サイドバーから試したことはありませんが、試してみる価値はあります。

于 2009-02-04T08:49:13.630 に答える
1

実際には、Web ページ (サイドバー拡張機能にロードされた別の Web ページにリンクがあった) をブラウザーの新しいタブにロードする方法はありません。唯一の方法は、javascript を使用することです。以下のような特権条件 (拡張機能の一部としての意味) で実行する必要があります。

gBrowser.addTab("http://www.google.com/");

編集:

この場合、ブラウザー タブを追加する上記の手法は機能しませんでした。この記事によると、サイドバーで実行されているコードはメイン ウィンドウにアクセスできません。まず、gBrowser を使用する前にブラウザ ウィンドウにアクセスしました。これは、私が使用し、適切に動作するウェブサイトから取得したコードです。

var mainWindow = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIWebNavigation)
.QueryInterface(Components.interfaces.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
.getInterface(Components.interfaces.nsIDOMWindow);

ブラウザー ウィンドウにアクセスした後、以下のように getBrowser 関数を介して gBrowser にアクセスしました。

mainWindow.getBrowser().addTab("http://www.google.com/");

メイン ウィンドウのブラウザに新しいタブが開きます。

于 2009-02-17T13:36:46.827 に答える
0
<a href="http://www.google.com" target="new">Google</a>

これは、使用されているブラウザに大きく依存します。Firefox と Opera、そしておそらく最新の IE では、ユーザー設定で特に指定しない限り、「新しいウィンドウ」を新しいタブとして表示します。

于 2009-02-04T08:45:03.047 に答える