我有遗留的网络应用情况,我无法从HTML标记中的脚本标记加载 jquery.min.js ..所以我必须加载它在另一个现有的脚本文件中使用一些js
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
head.appendChild(script);
问题是..当包含负载很慢时......有jQuery函数 (也在页面上动态加载)试图运行但找不到jQuery
在jquery.min.js包含文件从CDN下载完成后,是否有一些跨浏览器方式在上面的代码中执行回调调用jQuery ready函数?谢谢,
修改
使用Mike的代码,几乎所有浏览器都使用 onload IE 8或更早版本以及其他需要 onreadystatechange 的浏览器我想
JSFIDDLE HERE:
答案 0 :(得分:2)
试
if(script.onreadystatechange)
script.onreadystatechange = function()
{
if(script.readyState == "complete" || script.readyState=="loaded")
{
script.onreadystatechange = false;
console.log("complete");
}
}
else
{
script.onload = function()
{
console.log("complete");
}
}
答案 1 :(得分:0)
我会将基于jquery的代码放在另一个单独的javascript文件中,并以与加载jquery.min.js完全相同的方式加载该文件。请在jquery.min.js之后立即执行此操作。这应该有用。
修改的
好的,因为那不起作用,试试这个:
function jqChecker()
{
if (! jQuery )
{
setTimeout(jqChecker, 500); // adjust as needed.
}
else
{
// insert code to dynamically load your external js file here
}
}
jqChecker();