0

以下のような条件で外部JavaScriptファイルを呼び出すことは可能ですか?

switch (VCheck) {
    case "1":
        Call "1.js"
        break;
    case "2":
        Call "2.js"
        break;
    case "3":
        Call "3.js"
        break;
    case "4":
        Call "4.js"
        break;
    case "5":
        Call "5.js"
        break;
    case "0":
        Call "Default.js"
        break;
    default: alert("Server Error - No Data!");
}

もしそうなら、正しい構文を提供するのを手伝っていただけませんか。

4

1 に答える 1

2

より洗練された構文で必要なことを正確に実行するrequire.jsを使用する必要があります。

http://requirejs.org/

「Call」命令が非同期ロードを行う場合は、次のようにコードを因数分解することもできます。

function Call(VCheck, callback)
{
    callback = callback || function(data) {};

    var data = ["Default", "1", "2", "3", "4", "5"];
    if (VCheck < 0 || VCheck > data.length - 1) { return alert("Server Error - No Data!"); }

    var script = document.createElement("script");
    script.id = "data" + Math.ceil(Math.random() * 0xffffff).toString(16);
    script.async = true;
    script.type = "text/javascript";
    script.src = data[VCheck] + ".js";

    var head = document.getElementsByTagName("head")[0];
    head.insertBefore(script, head.firstChild);

    var img = new Image();
    img.onload = function()
    {
        //your data here
        console.log(document.getElementById(script.id).innerHTML);

        var data = document.getElementById(script.id).innerHTML;
        callback.call(null, data);
    };
    img.src = script.src;
}

または、jQueryのgetScriptを使用する場合:

$.getScript(data[VCheck] + ".js", function(data)
{
   //your data here
   console.log(data);
});
于 2013-01-29T09:37:51.320 に答える