1

私は ajax 応答を読み込んでいますが、それを理解するには jQuery が必要です。遅延の理由により、ページの読み込み時に jQuery を読み込むことができません。

したがって、この ajax 呼び出しが行われるたびに、javascipt/css をロードできるようにしたいと考えています。これに関する多くの記事を読みましたが、すべてのブラウザーで機能するものはありません。

これらのリンク/スクリプトタグをjavascript応答に入れ、しばらくして(300ミリ秒)出力で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 では機能しません。ここで何が間違っているのかわかりません。この問題を解決するために、助けてください。

4

2 に答える 2

0

loadイベントの発生後にjQueryをロードする場合、ページはすでにレンダリングされているため、レイテンシの問題は発生しません。

loadイベントはすでに発生しているため、この場合は発生しません。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を知っています。

于 2012-10-04T10:52:10.767 に答える
0

ajax呼び出しを使用してjqueryファイルをロードします(ajax async = falseにします)。

于 2012-10-04T10:52:44.140 に答える