我正在为不同的<script>
资源动态添加.js
个标记,但我收到一条错误消息jQuery is not defined
。
我知道jQuery实际上正在工作,因为流程中的其他功能正在正常工作。下面是我用来动态地将这些脚本添加到标题的代码。如您所见,我还在任何其他插件之前包含jQuery。
document.addEventListener("DOMContentLoaded", AddExternals)
function AddExternals(){
var jq = document.createElement("script");
jq.type = "text/javascript";
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js";
var t2e = document.createElement("script");
t2e.type = "text/javascript";
t2e.src = "/test/rfsystem/rfJavascript/table2excel.js";
document.getElementsByTagName("head")[0].appendChild(jq);
document.getElementsByTagName("head")[0].appendChild(t2e);
console.log(jQuery);
}
答案 0 :(得分:7)
在添加script
代码后,您不能指望script
已从网络中移除并嵌入到您的网页中。它将异步加载。
您需要等待,或者您可以.onload
使用script
。
<强>实施例强> 您还应该在附加onload事件之前将脚本附加到DOM,并且应该在onload事件之后设置src属性:
var jq = document.createElement("script");
jq.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(jq);
jq.onload = function() { console.log(jQuery); };
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js";