0

したがって、CSS トランジションが機能しない場合のバックアップとして jquery をロードしたいと考えています。そのためにモダナイザーを使用すると、正常に機能します。

のようにヘッダーに含めると、jquery は正常に動作します

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

しかし、動的に追加しようとするとそうではありません

  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js")

また

    var jqueryscript = document.createElement("script");
jqueryscript.type = "text/css";
jqueryscript.setAttribute("http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
document.body.appendChild(jqueryscript);
4

5 に答える 5

2

2 番目のスニペットでは、以下を使用する必要があります。

jqueryscript.type = "text/javascript";
jqueryscript.src = "http://ajax.blahblahblah";

いいえ

jqueryscript.type = "text/css";
jqueryscript.setAttribute("http://ajax.blahblahblah")

.setAttribute() は 2 つのパラメーターを取ります。1 つ目は属性名、2 つ目は値です。1つの値を渡すことは無効です(私は思った)...

于 2012-06-29T15:19:27.777 に答える
1

最初の例では、script タグをドキュメントに追加する必要があります。そうしないと、メモリ内に要素が作成されますが、ブラウザーはわざわざファイルをダウンロードしません。

var fileref = document.createElement("script");
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
document.getElementsByTagName("head")[0].appendChild(fileref);

el.setAttribute("src", ...)と を使用しel.src =ても実際の違いはないことに注意してください(ここで説明します)。

この方法で JavaScript ファイルをロードする場合、ファイルがロードされるまでjQueryまたは$変数を使用できないことに注意してください。関数内で使用するコードをラップし、スクリプトがロードされたjQueryに関数を呼び出す必要があります。簡単な例:

function onScriptLoaded() {
    alert(jQuery.fn.jquery); // alerts jQuery version number
}
var fileref = document.createElement("script");
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
fileref.onload = onScriptLoaded;
fileref.onreadystatechange = function () {
    if (this.readyState == 'complete') {
        onScriptLoaded();
    }
}
document.getElementsByTagName("head")[0].appendChild(fileref);
于 2012-06-29T15:23:42.437 に答える
1

どちらのスニペットも正しくありません。次のスニペットを試してください。

var headID = document.getElementsByTagName("head")[0];  
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js';
headID.appendChild(newScript);
于 2012-06-29T15:23:44.133 に答える
0

問題は、実行されるまで jQuery を使用できないことである可能性があります。その場合、イベントをリッスンし、そのイベントが実行された後にのみ jQuery コードを実行する必要があります。

script.onload = script.onreadystatechange = function() {
    // run your jquery dependent code
    // only after this function ran
}
于 2012-06-29T15:19:14.810 に答える
0

試す

 document.write('<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><\/script>');
于 2012-06-29T15:27:16.497 に答える