谁获取右键单击的选项卡的选项卡索引,该选项卡将触发选项卡上下文菜单。选项卡不是活动选项卡(不是selectedIndex
)?
举个例子。无论右键单击哪个选项卡(活动/非活动),选项卡上下文菜单中的"关闭右侧选项卡"都有效。它如何获得正确的选项卡索引?
侦听tabContextMenu
元素的popupshown
事件。
由于这是一个无重启插件,我认为您已经参考了ChromeWindow。
var tabContextMenu = chromewin.document.getElementById("tabContextMenu");
tabContextMenu.addEventListener("popupshown", function(){
var rightclickedtab = chromewin.TabContextMenu.contextTab;
// now proceed as you wish
}, false);
您也可以添加自己的菜单项并监听其command
事件。
在任何情况下,请记住在卸载扩展时进行清理。
点击event.target(即tab
元素),然后循环通过具有选项卡的childNoedes的选项卡元素的parentNode,怎么样。然后在那里找到你的活动目标?
所以点击添加点击监听器并这样做:
var foundAtIndex = -1;
var tab = event.target;
var tabContainer = tab.parentNode;
var tabs = tabContainer.childNodes;
for (var i=0; i<tabs.length; i++) {
if (tabs[i] == tab) {
foundAtIndex = i;
break;
}
}
if (foundAtIndex !== -1) {
console.error('very weird, tab not found');
} else {
console.info('tab found at index:', foundAtIndex);
}