如何从JS函数中的ajax响应/加载CSS / Javascript - 跨浏览器方式

时间:2012-10-04 10:44:40

标签: javascript css ajax

我正在加载一个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中不起作用。 我不确定我在这里做错了什么。在解决这个问题时,有些人可以帮忙吗?

2 个答案:

答案 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)。

相关问题