【发布时间】:2016-04-19 16:37:44
【问题描述】:
有简单的页面:
<html>
<head>
<script type="text/javascript" src="scripts/x.js"></script>
</head>
<body>
<script type="text/javascript">
console.log($);
</script>
</body>
</html>
'scripts.x.js':
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://code.jquery.com/jquery-1.12.3.min.js';
script.async = false;
script.defer = false;
document.currentScript.parentNode.insertBefore(script, document.currentScript.nextSibling);
这个脚本只是在当前脚本之后添加了一个新的外部脚本标签,但它不起作用,因为 'console.log' 写入错误 'index.html:8 Uncaught ReferenceError: $ is not defined'。我究竟做错了什么?提前致谢!
【问题讨论】:
-
如您所见,我正在尝试动态添加 JQuery @RayonDabre
-
那么在这种情况下,您的 JS 的其他一些部分在
jQ加载之前正在执行... -
我明白了,但是为什么呢? 'scripts/x' 在自己之后添加 JQ,在 'console.log' 之前
-
因为,正在添加
scriptasynchronously..usepromise
标签: javascript