我需要动态加载 JavaScript 文件,然后访问其内容。
File test.js
test = function () {
var pub = {}
pub.defult_id = 1;
return pub;
}()
在这种情况下它有效:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="/test.js"></script>
</head>
<body>
<script type="text/javascript">
console.log(test.defult_id);
</script>
</body>
</html>
但我需要动态加载它,这样它就不起作用:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script type="text/javascript">
function loadjs(file) {
var script = document.createElement("script");
script.type = "application/javascript";
script.src = file;
document.body.appendChild(script);
}
loadjs('test.js');
console.log(test.defult_id);
</script>
</body>
</html>
Error: Uncaught ReferenceError: test is not defined(…)
你可以这样做:
function loadjs(file) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = file;
script.onload = function(){
alert("Script is ready!");
console.log(test.defult_id);
};
document.body.appendChild(script);
}
欲了解更多信息,请阅读这篇文章:https://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/ https://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)