繁体   English   中英

处理firefox插件中的右键单击,仅适用于文档

[英]Handling rightclick in a firefox addon, only for the document

我正在编写一个相当简单的firefox附加组件,当用户在网页的任何位置点击鼠标右键时,我想做一些事情。 我得到了它的工作,但奇怪的是我也从firefox UI获得所有右键单击(如在工具栏,选项卡,urlbar等)。 当然,我对那些不感兴趣。

document.addEventListener("contextmenu", function(e) {
    // do stuff here
}, true);

我最初在窗口上有这个监听器,但它并没有改变一件事。

关于如何在网站上发生右键点击时触发事件的任何提示?

我猜你是从浏览器窗口叠加运行代码-这样的document ,你附上你的事件监听器是浏览器窗口的XUL文件。 如果您只需要浏览器中的事件,那么您应该将事件监听器附加到浏览器。 这仍然不会做你想要的,因为浏览器也有一些用户界面(通知栏),但很容易检测事件目标是否在内容文档中:

gBrowser.addEventListener("contextmenu", function(e) {
    if (e.target.ownerDocument.defaultView.top == window)
      return;

    // do stuff here
}, true);

这使用了window.top是浏览器内窗口的顶级内容窗口这一事实 - 它们不能越过边界到XUL代码。 对于浏览器UI元素,您将获得真正的顶部窗口,但是您运行的窗口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM