簡體   English   中英

Firefox側邊欄擴展鏈接已加載到新的瀏覽器選項卡中。 如何?

[英]Firefox sidebar extension link loaded into a new browser tab. How-To?

我有一個friefox側邊欄擴展名。 如果通過單擊工具欄圖標將其打開,則將加載一個網頁(由我編寫)。 現在,如果用戶單擊網頁上的鏈接(即加載到側欄上的鏈接),我希望鏈接的網頁在主窗口的新選項卡中打開。 我在網頁標記中嘗試過此操作:

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

但是,鏈接會在具有焦點的選項卡中打開,而不是在新選項卡中打開。

請幫忙。

謝謝。

如果改用target =“ _ blank”,則FF(版本3)應為其打開一個新標簽。 還沒有從側邊欄嘗試過,但是值得一試。

實際上,沒有辦法將網頁(其鏈接在另一個網頁中加載到側邊欄擴展中)加載到瀏覽器中的新選項卡上。 唯一的方法是使用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/");

在主窗口瀏覽器中打開一個新選項卡。

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

這更多地取決於所使用的瀏覽器。 Firefox和Opera,並且我敢肯定,最新的IE會將“新窗口”顯示為新選項卡,除非用戶首選項另有指定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM