在脚本文件中,我必须动态地导入另一个脚本并使用其中定义的函数和变量。在运行时加载脚本并确保加载脚本
现在,我将它添加到页面的HEAD
部分,但在添加它之后,外部脚本中定义的函数和变量不会被加载并准备好使用。我该怎么做,并确保脚本完全加载?
我试过使用script.onreadystatechange
和script.onload
回调,但我遇到了一些浏览器兼容性问题。
我该怎么做,尽可能安全,与纯JS和体面的浏览器兼容性?
样品:
uno.js:
var script = document.createElement("script");
script.src = "dos.js";
script.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(script);
alert(outerVariable); // undefined
dos.js:
var outerVariable = 'Done!';
sample.html
<html>
<head>
<script type="text/javascript" src="uno.js"></script>
</head>
...
</html>
为什么不叫你从加载脚本的功能?通过这种方式,无论状态更改回调问题如何,我都会知道它会被加载(我也是这样做的,因为类似的问题)。 –
我不确定它足够安全。但是如果我没有选择的话,我会去做的。 – everton
你有什么兼容性问题? – putvande