Google chrome extension 如何为chrome扩展保持eventlistener的实时性?

Google chrome extension 如何为chrome扩展保持eventlistener的实时性?,google-chrome-extension,addeventlistener,double-click,Google Chrome Extension,Addeventlistener,Double Click,我将如何以函数始终运行的方式调用函数。 我希望在用户双击的任何位置都可以获得文本选择。所以我不知道如何连接始终保持打开状态的eventlistener。而不仅仅是加载文档时的一次性功能。但更像是一个正在进行的eventlistener,只要选项卡处于打开状态 非常感谢你 好的,要以持久的方式调用javascript,必须定义contentScript并从那里调用js。 为了实现您所描述的内容(并使其在每个选项卡上始终可用),您可以使用并将其注入每个页面(请参见下面的代码)。 如果只希望将其绑定到

我将如何以函数始终运行的方式调用函数。 我希望在用户双击的任何位置都可以获得文本选择。所以我不知道如何连接始终保持打开状态的eventlistener。而不仅仅是加载文档时的一次性功能。但更像是一个正在进行的eventlistener,只要选项卡处于打开状态


非常感谢你

好的,要以持久的方式调用javascript,必须定义contentScript并从那里调用js。

为了实现您所描述的内容(并使其在每个选项卡上始终可用),您可以使用并将其注入每个页面(请参见下面的代码)。
如果只希望将其绑定到特定选项卡,则可以利用(即非持久性背景页面)并在每次在指定选项卡中加载新页面时为事件和内容脚本注册侦听器

在上述内容脚本中,您可以将事件侦听器附加到
文档本身以捕获所有事件


下面是一个示例扩展的源代码,该扩展向每个选项卡添加了所需的“功能”:

content.js

var listener = function(evt) {
    var selection = window.getSelection();
    if (selection.rangeCount > 0) {
        var range = selection.getRangeAt(0);
        var text = range.cloneContents().textContent;
        console.log(text);
    }
};
document.addEventListener('dblclick', listener);
manifest.json

{
    "manifest_version": 2,

    "name":    "Test Extension",
    "version": "0.0",
    "offline_enabled": true,

    "content_scripts": [{
        "matches":    ["<all_urls>"],
        "js":         ["content.js"],
        "run_at":     "document_end",
        "all_frames": false
    }]
}
{
“清单版本”:2,
“名称”:“测试扩展”,
“版本”:“0.0”,
“脱机_已启用”:true,
“内容脚本”:[{
“匹配项”:[“”],
“js”:[“content.js”],
“运行时间”:“文件结束时间”,
“所有帧”:false
}]
}

那么,您的意思是,即使用户访问同一选项卡中的不同页面,也应该在那里应用侦听器?您将侦听器附加到哪个元素?如何决定在哪个选项卡上激活此功能?到目前为止,您尝试了什么?确切地说,即使他们访问不同的页面,他们仍然能够双击并获取所选单词。你可以想象像谷歌字典这样的东西。它适用于所有页面、选项卡。我应该将eventlistener附加到哪些元素?谢谢@expertsystems这取决于你想要达到的目标。请提供更多的上下文。例如,您希望发生什么(“用户双击某个文本,该文本被选中……”然后呢?@ExpertSystem双击页面上的某个文本,并将所选文本记录到控制台中。这就是我现在要找的例子。