将jquery插入js文件

时间:2015-02-13 03:02:23

标签: javascript jquery

我有一个js文件,其中我想要包含jquery。为了包含jquery脚本我正在使用这个clode:

    var script = document.createElement('script');
    script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);

这个工作,我可以看到正确地包含了脚本。我的检查员显示它加载了脚本,但jquery不能正常工作。

任何想法?

3 个答案:

答案 0 :(得分:2)

在尝试使用之前,您需要确保动态加载的脚本已实际加载。

为此,请在加载完成后使用script.onload触发回调。

var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head') [0].appendChild(script);
script.onload = function () {
  /* jquery dependent code here */
  console.log($);
};

MDN有一个更适合您指定的回调的示例 -

// from https://developer.mozilla.org/en-US/docs/Web/API/HTMLScriptElement#Dynamically_importing_scripts
function loadError (oError) {
  throw new URIError("The script " + oError.target.src + " is not accessible.");
}

function importScript (sSrc, fOnload) {
  var oScript = document.createElement("script");
  oScript.type = "text\/javascript";
  oScript.onerror = loadError;
  if (fOnload) { oScript.onload = fOnload; }
  document.currentScript.parentNode.insertBefore(oScript, document.currentScript);
  oScript.src = sSrc;
}  

答案 1 :(得分:0)

您的jQuery代码无法正常运行可能是因为浏览器执行您的jQuery代码时尚未加载jQuery。使用下面的函数动态加载带回调的jQuery。将您的jQuery代码放在回调函数中。

function loadScript(url, callback) {
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = url;

    if (typeof(callback) === 'function') {
        s.onload = s.onreadystatechange = function(event) {
            event = event || window.event;
            if (event.type === "load" || (/loaded|complete/.test(s.readyState))) {
                s.onload = s.onreadystatechange = null;
                callback();
            }
        };
    }

    document.body.appendChild(s);
}

/* Load up jQuery */
loadScript('https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', function() {
    // Put your jQuery code here.
});

答案 2 :(得分:-1)

您需要在HTML代码中包含jQuery。 jQuery不会为你工作,因为你的脚本是在加载jQuery之前加载的。