Javascript 将jquery插入js文件
我有一个js文件,我想在其中包含jquery。为了包含jquery脚本,我使用以下clode:Javascript 将jquery插入js文件,javascript,jquery,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.getElementsByTa
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无法工作
有什么想法吗?您需要在HTML代码中包含jQuery。jQuery不适用于您,因为您的脚本是在加载jQuery之前加载的。在尝试使用它之前,您需要确保动态加载的脚本已实际加载 为此,使用
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($);
};
有一个更适合您指定的回调的示例-
// 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;
}
您的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.
});
为什么要动态添加脚本标记?如何断定jquery不起作用?这听起来像是竞争条件。上面的代码以异步方式加载jQuery,因此,在下载并加载jQuery之前,您将无法访问它。该.js文件使用的是一个simile$(document)。单击(function(){alert('works');});我在js文件(加载在页脚中)和正文中的html文件中都有相同的代码。我得到的控制台错误是“$未定义”您是否尝试使用jQuery而不是$?完全错误-脚本可以在页面中动态加载。搞定了!谢谢jdp!