通过 Firefox 扩展在特定位置打开标签
Open Tab in a Specific Position by Firefox extension
比如说,Firefox 浏览器中有 10 个标签页 window。
如何通过 Firefox 扩展代码在第二个选项卡之后添加一个选项卡?
gBrowser.addTab
方法仅附加到选项卡列表。
没有简单、直接的方式来做你想做的事。如果您真的想在特定索引处直接打开选项卡,那么您可以查看code for gBrowser.addTab()
and the code for gBrowser.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);
}
比如说,Firefox 浏览器中有 10 个标签页 window。
如何通过 Firefox 扩展代码在第二个选项卡之后添加一个选项卡?
gBrowser.addTab
方法仅附加到选项卡列表。
没有简单、直接的方式来做你想做的事。如果您真的想在特定索引处直接打开选项卡,那么您可以查看code for gBrowser.addTab()
and the code for gBrowser.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);
}