Firefox addon 检测XUL中的tabbox选项卡更改

Firefox addon 检测XUL中的tabbox选项卡更改,firefox-addon,dom-events,xul,tabbed-view,Firefox Addon,Dom Events,Xul,Tabbed View,检测选项卡框内选项卡之间切换的最佳方法是什么? 特别是,我需要检测某个选项卡何时打开,以及用户何时离开(切换到另一个选项卡) 我现在使用的是onclick,但这感觉有点黑客味。我承认它可能在靠近页面顶部的更显眼的位置,但上面说: 选定面板 类型:元素 保存对图元中当前选定面板的引用。为该>属性指定一个值将修改所选面板。更改所选面板时,将发送一个选择事件 现在还不完全清楚事件目标是tabbox还是单个面板,因此您可能需要进行一些实验。在tabpanels元素上收听选择事件: var panels

检测
选项卡框内选项卡之间切换的最佳方法是什么?
特别是,我需要检测某个选项卡何时打开,以及用户何时离开(切换到另一个选项卡)


我现在使用的是
onclick
,但这感觉有点黑客味。

我承认它可能在靠近页面顶部的更显眼的位置,但上面说:

选定面板

类型:元素

保存对图元中当前选定面板的引用。为该>属性指定一个值将修改所选面板。更改所选面板时,将发送一个选择事件


现在还不完全清楚事件目标是tabbox还是单个面板,因此您可能需要进行一些实验。

tabpanels
元素上收听
选择
事件:

var panels = document.getElementById("tabpanels"); // whatever your ID is
panels.addEventListener("select", function(e) {
    var el = e.target;
    alert(e.target.tagName); // tabpanels
    alert(e.target.selectedPanel) // [object XULElement] (the selected tab)
}, false);

事实上,
选项卡
选项卡面板
都会生成select事件,尽管可能有多个选项卡显示同一个选项卡面板,在这种情况下,您将不会获得第二个select事件。感谢它的工作。遗憾的是,tabpanel还捕获了其子项的所有“选择”事件,因此需要进行额外的检查,以确定用户是否确实更改了选项卡或只是单击了tabpanel中的某个内容。