Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOMContentLoaded事件无法捕获Chrome内容脚本中子帧的加载_Javascript_Google Chrome Extension_Firefox Addon - Fatal编程技术网

Javascript DOMContentLoaded事件无法捕获Chrome内容脚本中子帧的加载

Javascript DOMContentLoaded事件无法捕获Chrome内容脚本中子帧的加载,javascript,google-chrome-extension,firefox-addon,Javascript,Google Chrome Extension,Firefox Addon,我在Firefox扩展中使用了DOMContentLoaded事件来捕获一个选项卡窗口中每个子帧的加载事件 但在Chrome内容脚本中,我使用 document.addEventListener("DOMContentLoaded", function(evt){console.log('domcontentloaded!')}, true); 它不工作,它只能捕获顶部窗口的加载事件 那么Firefox和Chrome之间有什么不同吗?如果在顶部框架中执行,即使在Firefox中,这段代码也不会

我在Firefox扩展中使用了DOMContentLoaded事件来捕获一个选项卡窗口中每个子帧的加载事件

但在Chrome内容脚本中,我使用

document.addEventListener("DOMContentLoaded", function(evt){console.log('domcontentloaded!')}, true);
它不工作,它只能捕获顶部窗口的加载事件


那么Firefox和Chrome之间有什么不同吗?

如果在顶部框架中执行,即使在Firefox中,这段代码也不会像您描述的那样工作

实现这一点的最简单方法是在每个帧中注入内容脚本

也许不同之处在于Firefox默认这么做;在Chrome中,这是可选的。由于控制台是在框架/上下文之间共享的,因此您会得到(错误!)的印象,认为它来自顶部框架中的代码

在舱单中:

"content_scripts" : [
  {
    "matches" : ["<all_urls>"],
    "js" : ["content.js"],
    "all_frames" : true,
    "run_at" : "document_start"
  }
]

我很惊讶它能在Firefox中工作。这完全没有道理(正如你所描述的)。
chrome.tabs.executeScript({file: "content.js", all_frames: true});