如何处理由Firefox加载项调度的事件?

时间:2014-05-20 10:40:26

标签: javascript firefox tabs firefox-addon

我安装了TST-plugin for Firefox 29.0。它几乎完全适合我,但我想改变一些选择。

当我关闭当前选项卡时,TST将重点放在左侧选项卡上。我希望,它关注于关闭当前后的最后打开的选项卡的历史记录(如Ctrl + Tab)。

As developers said,我应该抓住他们的事件,防止它......什么?开发人员提供的代码段:

window.addEventListener(
  "TreeStyleTabFocusNextTab",
  function(aEvent) {
    if (Prefs.getCharPref('myextension.focus.mode') != 'default')
      aEvent.preventDefault();
  },
  false
);

我不知道,我应该做什么,甚至在那里我应该这样做。我在哪里可以编写代码来捕获事件?如何将ctrl + tab事件发送到TST,然后才关闭当前选项卡?

1 个答案:

答案 0 :(得分:1)

TST开发人员为其他希望修改或与TST交互的扩展开发人员提供了文档,而不是“常规”用户。您必须编写附加组件,然后将覆盖脚本中引用的代码段用于browser.js

我快速查看了附加组件本身的代码,检查是否有一个等效的首选项来控制它而不编写代码,但是 EDIT 有一个:{{1 }}。请参阅browser.tabs.selectOwnerOnClose中的onFocusNextTab ...不确定它是否在任何地方的加载项首选项窗口中公开...但您可以使用modules/window.js(在标签中打开)来设置它到about:config(您可能必须首先在about:config中创建它作为布尔首选项。)

所以你的选择是:

  • 使用首选项。
  • 根据我收集的内容修改加载项本身(true中的_tryMoveFocusFromClosingCurrentTab)。
  • 编写一个简短的XUL-overlay插件,使用TST作者在modules/browser.js覆盖脚本中建议的代码段。

如果您决定自行更改/编写附加代码,请参阅信息页面和部分以获取更多信息。