一尘不染

处理jQuery.getScript中的错误

ajax

jQuery的getScript函数似乎不支持错误回调函数。我不能在这里使用全局ajax错误处理代码,局部错误功能将是理想的选择。

回调获取data / textStatus的文档似乎不正确-回调均不获取。

关于如何检测到对getScript的调用失败的任何建议(例如,服务器不可用)?

编辑:仅查看源代码,似乎回调仅在成功时才调用,数据始终设置为null且未定义textStatus(因为我认为这是仅成功的回调)。该文档对于此功能非常不正确。


阅读 241

收藏
2020-07-26

共1个答案

一尘不染

这有点hack,但是..

您可以在加载的脚本中声明一个变量,并在加载脚本后对其进行检查(假设完整功能仍会触发):

script_test.js:

var script_test = true;

然后:

$.getScript("script_test.js", function ()
{
    if (typeof script_test !== undefined) alert("script has been loaded!");
});

或者,您可以尝试查看脚本中是否真正存在函数,变量,对象等

。更通用的方法是在要加载的脚本中添加自执行函数,然后使它们在您的“主要”脚本中执行功能:

main_script.js:

function scriptLoaded(scriptName)
{
    alert(scriptName + " loaded!");
}

$.getScript("script_test.js");

script_test.js:

(function ()
{
    scriptLoaded("script_test.js");
})();
2020-07-26