动态添加脚本

时间:2015-12-18 10:43:49

标签: javascript jquery

我正在为不同的<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);
}

1 个答案:

答案 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";