Google chrome extension 截取(或取消)页面';s鼠标/键盘事件处理程序

Google chrome extension 截取(或取消)页面';s鼠标/键盘事件处理程序,google-chrome-extension,textselection,Google Chrome Extension,Textselection,我正在尝试创建一个处理选定文本的Chrome扩展。某些网站页面的其他可选文本内容具有可导航到新页面的单击/鼠标上下事件处理程序 后台或内容脚本是否有办法在不干扰本机文本选择的情况下临时禁用(和恢复)页面的任意事件处理程序 我想到的最糟糕的情况是分离、克隆主体html、允许选择,然后恢复绑定的原始内容。好像有麻烦 谢谢 大多数HTMLDOM事件遵循以下规则。这意味着,例如,如果您单击一个按钮,“单击”事件首先在根上调度,一直到按钮,然后备份。可以停止事件传播,这会阻止下一级别的事件侦听器收到事件通

我正在尝试创建一个处理选定文本的Chrome扩展。某些网站页面的其他可选文本内容具有可导航到新页面的单击/鼠标上下事件处理程序

后台或内容脚本是否有办法在不干扰本机文本选择的情况下临时禁用(和恢复)页面的任意事件处理程序

我想到的最糟糕的情况是分离、克隆主体html、允许选择,然后恢复绑定的原始内容。好像有麻烦


谢谢

大多数HTMLDOM事件遵循以下规则。这意味着,例如,如果您单击一个按钮,“单击”事件首先在根上调度,一直到按钮,然后备份。可以停止事件传播,这会阻止下一级别的事件侦听器收到事件通知

最早接收事件的可能是在根节点,通常是在捕获阶段的
窗口
。要将事件侦听器绑定到捕获阶段,请使用
addEventListener
,并将第三个参数设置为
true

//在内容脚本中,在运行时:文档开始时
window.addEventListener('click',函数(事件){
事件。stopImmediatePropagation();
},对);

许多web页面使用jQuery管理DOM事件,这会在冒泡阶段绑定事件侦听器,因此前面的方法适用于大多数站点。如果页面未使用jQuery,则必须将事件监听器绑定到,以确保在其他事件监听器之前触发事件监听器。

抱歉,这不适用于question@uosɐſ你是如何在45秒内找出答案不适用的?如果您想防止页面干扰本机事件,那么唯一可靠的方法就是阻止页面看到这些事件。它没有考虑chrome扩展的孤立世界的细微差别。这是关于一般DOM事件信息的回答。@uosɐ隔离世界仅应用于JavaScript执行上下文,而不是DOM事件。因此,内容脚本中的孤立世界与问题或答案无关。您的问题的答案不一定是特定于扩展的。事实上,答案中唯一特定于扩展的部分是在答案的最后(关于run_at:document_start的那一行)。关于“document_start”的见解给了孤立的世界一个注入页面脚本和预处理其他事件的机会,这可能会起作用。除非页面的常规脚本删除所有此类处理程序。我希望Chrome Extensions API中有更强大的功能,这看起来像是一个标准的javascript事件模型解释。很抱歉