我正在加载一个ajax响应,我需要jQuery来理解它。 由于延迟原因,我无法在页面加载时加载jQuery。
所以每当进行这个ajax调用时,我希望能够加载javascipt / css。 我在这上面阅读了很多文章,但在所有浏览器中都没有任何作用。
我尝试将这些链接/脚本标记放在javascript响应中,然后在一段时间(300ms)之后评估输出中的javascript,但这在chrome中不起作用。(可能是一些竞争条件)。
我也试过这个:
function addJquery() {
var script = document.createElement("script");
script.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
script.setAttribute('type', 'text/javascript');
script.addEventListener('load', function() {
var script = document.createElement("script");
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
这适用于Firefox,但在Chrome中不起作用。 我不确定我在这里做错了什么。在解决这个问题时,有些人可以帮忙吗?
答案 0 :(得分:0)
如果在加载事件触发后加载jQuery,则没有延迟问题,因为页面已经呈现。
加载事件不会在您的情况下触发,因为它已经发生。使用setInterval检测jquery,然后清除间隔。
window.addEventListener('load', function(){
var script = document.createElement('script');
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script);
var inter = setInterval(function(){
if( jQuery ){
clearInterval(inter);
//execute jQuery code here
}
},100);
},false);
此外,您不再需要在脚本元素上设置类型。 每个浏览器都知道它的javascript。
答案 1 :(得分:0)
使用ajax调用加载jquery文件(Make ajax async = false)。