假設Firefox瀏覽器窗口中有10個選項卡。通過Firefox擴展在特定位置打開選項卡
如何通過Firefox擴展代碼在第二個選項卡後面添加選項卡?
gBrowser.addTab
方法只附加到選項卡列表。
假設Firefox瀏覽器窗口中有10個選項卡。通過Firefox擴展在特定位置打開選項卡
如何通過Firefox擴展代碼在第二個選項卡後面添加選項卡?
gBrowser.addTab
方法只附加到選項卡列表。
有沒有簡單的,直接做你想做的事情的方式。如果你真的想要打開一個標籤直接在一個特定的索引,那麼你可以看看code forgBrowser.addTab()
和code forgBrowser.moveTabTo()
;複製它們並修改它們以做你想做的事。請注意,此代碼是JavaScript的XML表示形式。因此,如果你想使用它,你需要重新格式化它。
但是,簡單這樣做的方法是打開標籤gBrowser.addTab()
。然後,將其移動到您想要的索引,gBrowser.moveTabTo()
。
下面的代碼將做你想做的。當我將此代碼附加到按鈕上時,該選項卡在視覺上似乎在指定的索引處打開。它沒有而是首先在標籤的末尾打開,然後出現移動。這樣做沒有用戶明顯的區別,添加然後移動,而不是實際上在指定的索引添加選項卡。
function handleButtonCommandEvent(event) {
let window = event.view;
//Create the window variable if it does not exist. It should
// already be defined from event.view.
// This should work from any Firefox context.
if (typeof window === "undefined") {
//If there is no window defined, get the most recent.
var window=Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator)
.getMostRecentWindow("navigator:browser");
}
//Test addTabAtIndex()
addTabAtIndexInWindow(window, 2, "http://www.ebay.com/")
}
/**
* Open a tab in specified window at index.
*/
function addTabAtIndexInWindow(window, index, URL, referrerURI, charset, postData,
owner, allowThirdPartyFixup) {
//Get the gBrowser for the specified window
let winGBrowser = window.gBrowser;
//Open a new tab:
let newTab = winGBrowser.addTab(URL, referrerURI, charset, postData,
owner, allowThirdPartyFixup);
//Immediately move it to the index desired:
winGBrowser.moveTabTo(newTab,index);
}
從的[文件](https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XUL/Method/addTab),我不認爲你可以看起來。 'addTab'只允許使用'URL','referrerURI','charset','postData','owner'和'allowThirdPartyFixup'作爲參數,這些參數都不影響位置。 – GAntoine