谁获取触发选项卡上下文菜单的右键单击选项卡的选项卡索引。标签不是活动标签(不是selectedIndex
)?
举个例子。无论右键单击哪个选项卡(活动/非活动)选项卡,选项卡上下文菜单中的“关闭右侧选项卡”都有效。它如何获得正确的标签索引?
谁获取触发选项卡上下文菜单的右键单击选项卡的选项卡索引。标签不是活动标签(不是selectedIndex
)?
举个例子。无论右键单击哪个选项卡(活动/非活动)选项卡,选项卡上下文菜单中的“关闭右侧选项卡”都有效。它如何获得正确的标签索引?
监听元素的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
事件。
无论如何,请记住在卸载扩展程序时进行清理。
单击时获取 event.targettab
元素,然后循环遍历该选项卡元素的父节点,该选项卡元素具有选项卡的 childNoedes。然后在那里找到你的 event.target ?
所以点击添加点击侦听器并执行以下操作:
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);
}