Javascript DOMContentLoaded事件无法捕获Chrome内容脚本中子帧的加载
我在Firefox扩展中使用了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中,这段代码也不会
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});