Javascript Chrome扩展从内容脚本引用/调用其他脚本函数

Javascript Chrome扩展从内容脚本引用/调用其他脚本函数,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我有一个包含很多函数的内容脚本,我希望能够将这些函数拆分成其他脚本 从内容脚本调用其他脚本是否需要任何魔法 我的清单包含两个脚本 "content_scripts": [ { "matches": [ "*://*/*" ], "js": [ "content.js", "other.js" ] } ] 我的内容脚本运行良好 但是,如果我在other.js文件中放入一个函数并逐步执行,那么我在other.js中引用的任

我有一个包含很多函数的内容脚本,我希望能够将这些函数拆分成其他脚本

从内容脚本调用其他脚本是否需要任何魔法

我的清单包含两个脚本

"content_scripts": [
  {
    "matches": [
      "*://*/*"
    ],
    "js": [
      "content.js",
      "other.js"
    ]
  }
]
我的内容脚本运行良好

但是,如果我在other.js文件中放入一个函数并逐步执行,那么我在other.js中引用的任何内容都是未定义的

这里有什么我应该知道的吗

编辑:

这只是一个简单的示例,测试函数应该在contentscript加载上运行

contentscript.js

Test();
other.js

function Test(){
  return true;
}

谷歌告诉我未捕获引用错误,测试未定义根据上的文档:

js:要注入匹配页面的JavaScript文件列表。这些将按它们在此数组中出现的顺序注入

在您的情况下,将首先注入
content.js
,并在加载
other.js
之前尝试执行
other
Test()函数

请注意,根据您的清单,这两个脚本都将在“document_idle”加载,因此即使
content.js
已注册调用
Test()
以在加载页面后运行,它仍应立即运行(因为页面已加载。
如果希望在加载页面内容之前注入脚本,请修改清单:

"content_scripts": {
    ...
    "run_at": "document_start"

只需为那些寻找关于其他脚本以及其他扩展脚本访问方法的答案的人添加一点

您可以使用这些方法以及通信方法访问扩展的其余脚本

  • 要从扩展中获取所有脚本的数组,可以使用以下方法

  • 您还可以使用该方法获取背景脚本或特定的背景脚本

  • 另一个选项是使用该方法传递脚本的内容,并在另一个脚本上使用事件侦听器进行侦听,以允许脚本从发送脚本接收数据

  • 除了上一个选项外,您还可以使用接收来自另一个活动扩展的脚本,通过发送,但这次使用事件侦听器代替(不能在内容脚本中使用)


  • 我希望这对某些人有帮助,就像它在前面对我有帮助一样。

    发布一些代码。您如何/什么/在哪里调用哪个函数,以及您希望看到什么(但不存在)?(我是否提到您应该能够在脚本之间毫无问题地进行通信?)如果上面的编辑可以工作,可能有一个加载顺序我没有考虑好谢谢你的帮助,这是清单的加载顺序更改顺序确实是一个解决方案。请参阅下面的我的答案,了解可能的替代方案。非常感谢你的帮助,正是我需要的信息,经过大约100次的润色,你需要付费这一切都在文件中:)我总是很乐意帮忙!(如果你觉得我的答案有帮助的话,请随意投我的赞成票……)