Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 类未定义/正在拆分后台脚本_Javascript_Google Chrome Extension - Fatal编程技术网

Javascript 类未定义/正在拆分后台脚本

Javascript 类未定义/正在拆分后台脚本,javascript,google-chrome-extension,Javascript,Google Chrome Extension,在app.js中,我要实例化: const test = new Test; 该类在另一个脚本中。(myFetchLibary.js) 问题:测试未定义 所有脚本都加载到清单中,如下所示: "background": { "scripts": [ "myFetchLibary.js", "app.js" ] }, 还有一个popup.html,用于加载脚本: <script src="app.js"></script>

在app.js中,我要实例化:

const test = new Test;
该类在另一个脚本中。(myFetchLibary.js)

问题:测试未定义

所有脚本都加载到清单中,如下所示:

  "background": {
    "scripts": [  
      "myFetchLibary.js",
      "app.js" ]
 },
还有一个popup.html,用于加载脚本:

  <script src="app.js"></script>
  <script src="myFetchLibary.js"></script>

如何在chrome扩展中做到这一点? 我不想把所有的东西都放在一个文件里。 如果两个文件都已加载,我是否可以调用该类?

您可以使用“延迟”属性

<script src="app.js" defer></script>
<script src="myFetchLibary.js"></script>

“延迟”属性是一个布尔属性,当存在时,它指定在页面完成解析后执行脚本。
1.如果存在异步:脚本将与页面的其余部分异步执行(脚本将在页面继续解析时执行)。
2.如果不存在async且存在defer:则在页面完成解析后执行脚本。

3.如果不存在async或defer:在浏览器继续解析页面之前,立即获取并执行脚本

元素的顺序并不重要。在创建
新的
类实例(
app.js
)之前,您需要加载
类定义(
myFetchLibary.js
),谢谢。。更改了订单,现在可以工作了。
<script src="app.js" defer></script>
<script src="myFetchLibary.js"></script>