javascript - 将点击的元素传递给 Firefox 中的上下文菜单操作

标签 javascript popup firefox-addon contextmenu

我正在尝试编写一个简单的扩展,它将获取您右键单击的链接,重新格式化 url 并在外部应用程序中启动它。除了一个异常(exception),我所有的部分都在工作。

我正在使用“popupshowing”监听器来推断被右键单击的元素是否是链接,并分别在上下文菜单中显示或隐藏“启动”命令。我的覆盖代码如下所示:

<menupopup id="contentAreaContextMenu">
  <menuitem id="LinkOpener" label="LAUNCH" oncommand="LaunchIt(document.popupNode);" />
</menupopup>

工作起来很有魅力,但根据文档,document.popupNode 正在逐步淘汰,我应该改用 menupopup 的 triggerNode。但是,我不能再简单地将它传递到内联“oncommand”处理程序中。

最好的方法是什么?我现在唯一能想到的是转到处理“popupshowing”事件的函数,删除具有先前元素引用的旧“命令”监听器并添加一个具有新引用的新监听器,但感觉可能有更好的方法来做到这一点。 任何帮助将不胜感激。 谢谢! 卢卡

最佳答案

已解决:因为 menuitem 是 menupopup 的子项,所以我可以这样做:

<menuitem oncommand="myFunc(this.parentNode.triggerNode);">

关于javascript - 将点击的元素传递给 Firefox 中的上下文菜单操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621977/

相关文章:

php - 检测窗口关闭

popup - javafx 事件发生时显示弹出窗口

ios - 在首次启动时加载弹出窗口,而不是 iOS 中的 UIAlertView

javascript - 有没有一种干净的方法来混合异步和同步数据库查询处理?

javascript - 如何根据 3 个下拉选项显示特定内容?

javascript - 检查任意值是否对称

javascript - 使用 ref 以编程方式触发单击事件?

jquery - 使用 jQuery 在 Chrome 扩展弹出窗口中显示隐藏 div

firefox - Firefox 扩展和插件有什么区别?

javascript - firefox扩展和页面javascript之间的通信