1

私は次のJavaScriptコードを使用しており、ファイルがダウンロードされてページのヘッダーに追加されたら、それを見つけようとしています。

function loadjscssfile(filename, filetype)
{
    if (filetype=="js"){ //if filename is a external JavaScript file
        var fileref=document.createElement('script')
            fileref.setAttribute("type","text/javascript")
            fileref.setAttribute("src", filename)
    }
    else if (filetype=="css"){ //if filename is an external CSS file
        var fileref=document.createElement("link")
            fileref.setAttribute("rel", "stylesheet")
            fileref.setAttribute("type", "text/css")
            fileref.setAttribute("href", filename)
    }
    if (typeof fileref!="undefined")
        document.getElementsByTagName("head")[0].appendChild(fileref)
}



loadjscssfile("jquery.js","js");

私は通常、次のコードを使用して、画像が読み込まれたことを確認します。

    document.getElementById("header_logo").src = "logo.png"; // load top logo

var header_logo = document.getElementById("header_logo"); 
    header_logo.onload = function(e) {  
    // do something here, the file has loaded
}

しかし、JSがロードされた後のチェック方法がわかりません。

何か案は?

(jQueryは使用できません。)

4

2 に答える 2

1

onloadイベントに関数を追加できます。

function loadjscssfile(filename, filetype, onload) {
    //if filename is a external JavaScript file
    if (filetype == "js") { 
        var fileref = document.createElement('script');
        fileref.type = "text/javascript");
        fileref.onload = onload;
        fileref.src = filename);
        document.getElementsByTagName("head")[0].appendChild(fileref);
        return;
    }

    //if filename is an external CSS file
    if (filetype == "css") { 
        var fileref = document.createElement("link");
        fileref.rel = "stylesheet";
        fileref.type = "text/css";
        fileref.onload = onload;
        fileref.href = filename;
        document.getElementsByTagName("head")[0].appendChild(fileref);
        return;
    }
}



loadjscssfile("jquery.js","js", function() { alert(this.src); });
于 2012-07-30T04:07:49.720 に答える
0

HTML 4.01 では、load イベントは body 要素と frameset 要素でのみサポートされましたが、多くは img 要素でサポートされ、いくつかは script 要素でサポートされていました。

HTML5 では、script 要素にはbeforescriptexecuteafterscriptexecute、およびloadイベントがあり、script 要素の存続期間中の適切なタイミングでディスパッチされます。ただし、これらのイベントのサポートは、使用中の多くのブラウザーで利用できない可能性が高いため、依存しないでください。

スクリプトがロードされたかどうかを確認する最も確実な方法は、実行されるコードの最後のビットによって値が割り当てられた変数の値をテストすることです。たとえば、次のような最終ステートメントです。

var loadedScripts = loadedScripts || {};
loadedScripts.fooScript = true;

次に、それをテストできます。

if (loadedScripts.fooScript) {
  // loaded

} else {
  // not loaded
}
于 2012-07-30T06:17:51.203 に答える