2

以下は機能しますが、このすべてのスクリプトをホームページに貼り付けるのが不快なクライアントに配布する必要があります。単純化できるかどうか疑問に思っていますか?Jquery 1.71をロードし、次にUIをロードしてから、独自のスクリプトをロードしてから、独自のスクリプトで関数を呼び出す必要があります。そのかなり長いものを最小化さえしました。

javascriptの第一人者がお役に立てば幸いです。ありがとう!

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
head.appendChild(script);
if (script.onreadystatechange) script.onreadystatechange = function () {
    if (script.readyState == "complete" || script.readyState == "loaded") {
        script.onreadystatechange = false;
        //alert("complete");
        load_script();
    }
} else {
    script.onload = function () {
        //alert("complete");
        load_script();
    }
}
//setup array of scripts and an index to keep track of where we are in the process
var scripts = ['script/jquery-ui-1.8.7.custom.min.js', 'script/wfo171.js'],
    index = 0;
//setup a function that loads a single script
function load_script() {
    //make sure the current index is still a part of the array
    if (index < scripts.length) {
        //get the script at the current index
        $.getScript('http://mydomainn.com/script/' + scripts[index], function () {
            //once the script is loaded, increase the index and attempt to load the next script
            //alert('Loaded: ' + scripts[index] + "," + index);
            if (index != 0) {
                LoadEdge();
            }
            index++;
            load_script();
        });
    }
}

function LoadEdge() {
    Edge('f08430fa2a');
}
4

2 に答える 2

4

jQueryを入手したらすぐに、その機能を使用できます。

$.when.apply($, $.map(scripts, $.getScript)).then(LoadEdge);

これは、その遅延機能に依存しています。各URLはgetScript遅延に置き換えられ(これによりスクリプトがフェッチされます)、これらの遅延が渡されるため、すべてのスクリプトのロードが完了したときに呼び出される$.whenコールバックを追加できます。.then

于 2012-05-22T14:51:57.080 に答える
1

実行を試みる前に、onloadイベントを使用して、すべてがロードされていることを確認してみませんか?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://mydomainn.com/script/jquery-ui-1.8.7.custom.min.js"></script>
<script src="http://mydomainn.com/script/wfo171.js"></script>
<script>
    $(function() { // this executes when the page is ready
        Edge('f08430fa2a');
    });
</script>

(スクリプトのパスを確認してください。ロード元のようですが/script/script、それが正しいかどうかわからなかったため、削除しました。

于 2012-05-22T14:52:15.787 に答える