1

FireFox では、本文の最後に次の jQuery があります。

$(document).ready(function() {
     $.getScript('LiveMapsJavascriptProvider.aspx?type=reference&value=6', init);
});

これが機能する前に、すべてをロードする必要がある js ファイルが頭の中にたくさんあります。だから私は自分の呼び出しを document.ready イベントに入れました。うまくいきません。IEは正常に動作します。

アラートを入れたら(''); $.getScript を呼び出す前に動作します。

スクリプトがまだ読み込まれていないという問題のように見えますか?

Document.ready は、すべてのスクリプトがロードされて準備が整った後に起動されたと思いました。

ありがとう、イアン

4

3 に答える 3

9

document.readyDOM がロードされた後に起動されます。これを試すことができます:

$(window).load(function() {
    // will execute once all scripts and images are finished loading
});
于 2009-12-06T17:34:47.513 に答える
3

そのために必ずしも jQuery を使用する必要はありません。

以下のように onload 関数を使用するだけです。

<body onload="JavascriptFunctionName">

または、以下に示すように、関数呼び出しを onload イベントに動的にアタッチできます。

function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}
addEvent(window, 'load', JavascriptFunctionName);

関数内に jQuery 関数呼び出しを埋め込むことができJavascriptFunctionNameます。

編集

jQuery は、次のコードを使用してそれを行うこともできます。不必要な冗長コードを避けるために、最初にそれを試すことをお勧めします。

$(window).load(function() {
    JavascriptFunctionName();
});
于 2009-12-06T17:43:10.950 に答える
0

並列読み込みを利用しながら、head.jsなどを使用して実行順序を指定できます。

于 2011-11-17T16:39:27.620 に答える