Javascript 如何在页面上加载多个内容脚本

Javascript 如何在页面上加载多个内容脚本,javascript,google-chrome-extension,Javascript,Google Chrome Extension,如果我在每个iframe中插入脚本,如何获得chrome扩展加载到页面中的大量内容脚本?现在,我通过计算iframe+1的数量来获得加载到web页面的大量内容脚本 +1因为我们有一个直接加载到页面的内容脚本 My manifest.json: "content_scripts": [ { "all_frames": true, "matches": ["*://*/*"], "run_at": "document_start" } ]

如果我在每个iframe中插入脚本,如何获得chrome扩展加载到页面中的大量内容脚本?现在,我通过计算iframe+1的数量来获得加载到web页面的大量内容脚本

+1因为我们有一个直接加载到页面的内容脚本

My manifest.json:

"content_scripts":
  [
    {
      "all_frames": true,
      "matches": ["*://*/*"],
      "run_at": "document_start"
    }
  ]
有可能吗?
谢谢

有一种非常简单的方法

chrome.tabs.executeScript的回调函数有一个不常用的参数:执行结果数组(上次计算的值)。您可以插入一个空内容脚本来计算执行上下文:

// Requires host permissions to all frames
chrome.tabs.executeScript(tabId, {code: ""}, function(result) {
  console.log("There are " + result.length + " execution contexts");
});

呃,你又想干什么?为什么你需要知道号码?我从后台脚本向内容发送消息。在所有内容脚本执行完毕后,我需要做一些事情(显示一些弹出窗口)。但是,通过计数很难做到这一点:iFrame可以嵌套。是的,我同意。但我没有找到任何其他解决方案。嗯,可以通过在window.top中添加一个计数器来实现。例如,当第一个内容脚本加载到页面时,我添加了新变量window.top.contentScriptNumber=1。然后,当下一个脚本加载到页面时,我将增加计数器窗口.top.contentScriptNumber++。