挂钩“在新标签页中打开”和“返回”

时间:2009-12-15 20:00:44

标签: firefox-addon

我想开发一个Firefox扩展程序,当链接点击打开一个新选项卡作为链接属性的结果时,以及当按下“后退”按钮(或等效)按钮时,它会执行操作。

如何在扩展程序中挂钩这两件事?

更新:我已经开始了赏金 - 我希望答案可以为Firefox Add-Ons带来一些隐藏的文档站点。一个不是Firefox代码库的网站,即。而不是所有扩展的集合。

3 个答案:

答案 0 :(得分:2)

我会尝试回答并给你一些曲目,但要注意它可能取决于你的firefox版本号(我知道你不是在寻找MDC页面,而且我知道它并不总是有详细记录,但是这是我发现的。)

  • 新标签:您必须在某些初始化功能中add an eventListener,并引用您要调用的操作。这样您就不必担心新标签的调用方式
  • 按下检测后退按钮:(自Firefox 3.5以来的新功能)add a progress listener on all tabs检测locationChange,然后使用“置位”新历史记录系统(自Firefox 3)进行比较并查看新URI是否为与前一个相同。不要忘记你可以使用“Del”或“Alt”+“LeftArrow”返回,这样你就无法真正重新实现Back Button动作(否则你可以添加一个XUL叠加并重新定义你需要的东西,但我'从来没有这样做过))

答案 1 :(得分:2)

在我看来,您希望避免使用进度监听器,因为即使没有要返回的页面,您也希望能够做出反应。

如果是这种情况,您是否尝试使用某种临时URL替换新选项卡?

解释我的意思:

  1. 用户点击会将新标签打开到http://www.google.com
  2. 重定向到http://cannotwork/?http://www.google.com
  3. 另存为地点
  4. http://cannotwork/发送到补充地点的任何请求
  5. 只是在这里抛出想法。祝你好运。

    对于早期版本的FF,还有一个“返回关闭”插件,当您处于“开始”状态时,将后退按钮替换为关闭。这可能是一个不错的主意。唯一的问题是他无法捕获del / back鼠标。因此,他建议将鼠标按钮重新绑定到Alt + Left(已被捕获)。

答案 2 :(得分:1)

看起来您可以实现nsISHistoryListener接口,以便在用户尝试返回时收到通知。

  

OnHistoryGoBack

     

当用户按下浏览器的“后退”按钮时,或者当用户尝试通过其他方式(通过脚本编写或使用nsIWebNavigation)返回历史记录中的一页时,通知监听器。