在Firefox插件中捕获复制事件

时间:2014-11-28 21:22:14

标签: javascript firefox event-handling firefox-addon firefox-addon-sdk

您好我是firefox插件和js的新手,并且没有具体的工作原理。我试图通过键盘或上下文菜单捕获任何用户启动的复制事件。 当我阅读一些帖子(How to capture copy events on arbitrary web pages in Javascript?)时,我知道有一个复制事件需要根据我的要求进行捕获和处理。我无法弄清楚如何捕获此事件。特别是与事件有关的是什么。 在类似的说明中,我尝试使用用户选择 https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Add_a_Context_Menu_Itemhttps://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/selection 虽然这对我来说很好,但我对我应该使用的API感到困惑。

我试图通过EventListenergBrowser上添加gBrowser.addEventListener("copy", function(){console.log("copy event");}, true);,但错误地说gBrowser not defined 我也尝试使用window.addEventListener("copy",function(){console.log("copy event");}, true);,它也返回了未定义的窗口。我猜我在一些导入或初始化时遗失了。这方面的任何链接都会有所帮助。

1 个答案:

答案 0 :(得分:1)

好的,这段代码可以运行,从暂存器运行。

设置开发人员偏好设置:https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment?redirectlocale=en-US&redirectslug=Setting_up_extension_development_environment#Development_preferences

打开暂存器:Shift + F4

粘贴此代码:

function cevent(e) {
  console.log('copied, e:', e);
}
gBrowser.addEventListener('copy', cevent, false)

点击便签簿中名为" Environment"的菜单项。然后单击"浏览器"。

然后点击"运行"

然后在您使用的最新浏览器中复制一些内容,此代码将此事件侦听器添加到最近的窗口。

您将在浏览器控制台中看到偶数登录:

你可以看到有粘贴和剪切以及其他事件:https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.onpaste?redirectlocale=en-US&redirectslug=DOM%2Felement.onpaste