2011-02-02 18 views
1

ウィンドウが特定のサイズである場合にのみ、jqueryとサイクルプラグインをロードします。これは後でデスクトップブラウザ用にのみロードされるように変更されます。 このコードをbodyタグの前に置くと、FFやIEでは正常に動作しますが、chromeでは正常に動作しません。 コードを頭に配置すると、すべてのブラウザで機能します。 文書の最後に配置した場合、どのように動作させることができますか?文書の末尾に条件付きでスクリプトをロードする

http://dl.dropbox.com/u/426954/allora/index.html

if (document.documentElement.clientWidth > 600) { 
    window.onload = function() { 
    //load jquery 
     var j = document.createElement('script'); 
    j.setAttribute('src', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js'); 
    document.getElementsByTagName("head")[0].appendChild(j); 

    //load cycle plugin 
     var c = document.createElement('script'); 
    c.setAttribute('src', 'http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js'); 
    document.getElementsByTagName("head")[0].appendChild(c); 

    //load custom script 
     var elScript = document.createElement('script'); 
    elScript.setAttribute('src', 'js/script.js'); 
    document.getElementsByTagName("head")[0].appendChild(elScript); 
    } 
    } 
+0

に「場合」に置くの? – Neil

答えて

3

だから頭に入れてください。パフォーマンスガイドラインでスクリプトの一番下に置くように求めているからといって、それを頭の中に入れるのは罪だというわけではありません。それがないすべてのDOMがとにかく

+0

ありがとう、実際にIE8はエラーをスローします:jqueryは定義されていません – paul

+0

そう、私はこれを見つけました:http://www.phpied.com/dynamic-script-and-style-elements-in-ie/ IEで動かないのはなぜですか? – paul

2

使用をこの

$(document).ready(function() { 

}); 

代わりに実行するためにロードされるまで待機しますonloadイベントにハンドラを割り当てているので、この場合には、あなたはどんなパフォーマンスを失うことはありません

window.onload 

、それはヘッダに動作する場合、なぜそのようにしない機能

+1

これを行うには、Jqueryファイルを読み込まなければなりません。これは彼が望むものではありません。 – Thiago

関連する問題