在加载之前发送函数名称?

时间:2012-03-13 18:20:08

标签: javascript jquery

我有这个代码,我将jsFile名称传递给load,并调用java脚本函数。但由于该函数仍未加载,因此我必须发送字符串名称并使用此类型的switch语句。

$.getScript(jsFile, function() {
    switch(initFunc){
        case 'a':
            a();
            break;
        case 'b':
            b();
            break;
    };
});

无论如何,这可以简化,我不想要条件陈述。

2 个答案:

答案 0 :(得分:2)

如果正在加载的脚本将这些函数定义为全局函数(使用a()b()似乎表明它确实存在),则可以将window用作浏览器中的全局对象:

$.getScript(jsFile, function () {
    window[initFunc]();
});

答案 1 :(得分:2)

您可以将脚本名称和回调函数的名称传递给看起来像这样的包装器:

function loadNExecute(scriptName, callbackName) {
  $.getScript(scriptName, function() {
    window[callbackName]();
  });
}

您当然需要确保成功加载脚本并调整回调函数的父级(在上例中为window)以满足您的需求。