此问题在此处已有答案:
How to disable click event on video element in youtube(3个答案)
23小时前关闭
在某些网站上,当模态对话框打开时,与我们的内容脚本UI交互会影响网页模态的'外部点击'处理程序,导致它们关闭
我的目的是在页面添加自己的侦听器之前,将“捕获阶段”事件侦听器添加到最根元素,从而允许我在event.target位于我们的UI中时执行stopImmediatePropagation
(防止页面的点击处理程序甚至知道或运行)
我对chrome apis不够熟悉(webNavigation?)来了解是否有时间可以在执行所服务的页面中的任何<script>
之前添加这些侦听器。
我尝试在<script>
标记中添加eventTrap.js
的纯文本/字符串版本,并将其添加到页面中,但这违反了内容安全策略(默认情况下,扩展在“隔离世界”中运行)
我还尝试使用document_start
,并确保我们的元素是DOM中的最后一个(在大的click trap元素之后),具有更高的z索引和非静态位置。
如何注入一个在页面本身之前运行的脚本??
我目前的想法是,我可以以某种方式侦听service worker中的webNavigation
事件,并以某种方式修改网页,可能使用chrome.scripting.executeScript
单击“Create Repl”打开一个模态后,当前用例为https://repl.it。我们需要这样的模态来保持开放,同时与我们的UI交互。另一个具有类似的,过于激进的捕获的网站是https://notion.so(通常在这种情况下与击键)。
1条答案
按热度按时间lnvxswe21#
您可以在
manifest.json
文件内部的内容脚本部分修改run_at
属性。参考文献
您可以将其设置为
document_start
,以便在页面加载时运行。但这并不能保证之前不会运行任何东西。如果有2个扩展名有这个,它将在每次页面重新加载时随机出现。(我测试了一下)
字符串