javascript 从另一个JS文件访问函数时遇到问题

ds97pgxw  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(159)

从另一个文件访问js文件的函数时遇到问题。
我已经创建了一个名为“test.js”的新文件,路径与main.js文件相同。
在test.js中,我只有一个函数:

function HelloWorld(){
   console.log("hi user");
}

现在我想在main.js中调用这个函数。在main.js中,我有附加test.js的script标记的代码。

var script = document.createElement('script');
script.type = 'module';
script.src = './test.js';    
document.head.appendChild(script);
console.log("head=",head.document)
HelloWorld();

在浏览器的控制台中,我可以看到脚本标记已成功添加。
但是当我想调用test.js函数HelloWorld()时;它抛出一个"HelloWorld" is not defined的期望值。
我错过了什么?

qxgroojn

qxgroojn1#

你有两个问题:
1.当前脚本尚未完成运行,因此其他脚本不可能已运行,因此不可能已及时创建函数
1.另一个脚本是作为模块加载的,因此它创建的函数无论如何都不在全局作用域中
正确地使用模块,而不是试图使用DOM和全局变量来伪造它们。

function HelloWorld(){
    console.log("hi user");
}

export default HelloWorld;

以及

import HelloWorld from './test.js';
HelloWorld();
0mkxixxg

0mkxixxg2#

试试这个

const script = document.createElement("script");
    script.src = "./script.js";
    script.onload = () => {
      HelloWorld();
    };
    script.onerror = () => {
      console.log("Error occurred while loading script");
    };
    document.head.appendChild(script);

相关问题