如何处理 Firefox 扩展中修改的链接点击事件

How to handle a modified link click event in a Firefox extension?

本文关键字:修改 链接 事件 扩展 何处理 处理 Firefox      更新时间:2023-09-26

当您单击链接时,链接的页面将在当前选项卡中打开。如果在按住Ctrl按钮的同时单击链接,则会在新的背景选项卡中打开链接的页面。我想实现一个可以捕获 Alt+Clicks 或 Shift+Clicks 的扩展,因此当用户按住Alt按钮单击链接时按下我的函数会获取链接目标 URL(除了我编程之外没有别的事情发生)。如何实现这一点?SDK 方式是非常可取的。

这样做,可以从 sdk 内容脚本或引导插件或覆盖插件完成。 如果从引导/覆盖中执行,则不是添加到每个文档,而是只需向 gBrowser 添加一次,而不是 document.addEv...do gBrowser.addEventL...

document.addEventListener('mousedown', function(e) {
    if (e.altKey && e.ctrlKey && e.button = 0 && e.target.nodeName == 'a') {
        e.preventDefault();
        e.stopPropagation();
        //do what you want, you may have to atach a mouseup preventer liek this
        document.addEventListener('mouseup', function(e) {
            document.removeEventListener('mouseup', arguments.callee, false);
            e.preventDefault);
            e.stopPropagation();
        }. false);
    }
});