获取用于触发标签上下文菜单的右键选项卡的标签索引的用户。标签不是有效标签(不是selectedIndex
)?
举个例子。无论右键单击哪个选项卡(活动/非活动)选项卡,“选项卡”上下文菜单中的“关闭选项卡”都会起作用。它如何获得正确的选项卡索引?
答案 0 :(得分:1)
收听popupshown
元素的tabContextMenu
事件。
由于这是一个无重启的插件,我假设你已经有了对ChromeWindow的引用。
var tabContextMenu = chromewin.document.getElementById("tabContextMenu");
tabContextMenu.addEventListener("popupshown", function(){
var rightclickedtab = chromewin.TabContextMenu.contextTab;
// now proceed as you wish
}, false);
您还可以添加自己的菜单项并聆听其command
事件。
在任何情况下,请记得在卸载扩展程序时进行清理。
答案 1 :(得分:0)
如果单击,则使用event.target(即tab
元素),然后遍历该选项卡元素的parentNode,该元素具有选项卡的childNoedes。然后在那里找到你的event.target?
所以lick add on click listeners并执行此操作:
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);
}