在jQuery.getScript处理错误错误、jQuery、getScript

2023-09-10 13:37:48 作者:染

jQuery的 getScript加入的功能似乎不支持一个错误回调函数。我不能使用全球ajax的错误处理code在这里,当地的误差函数将是理想的。

jQuery's getScript function doesn't seem to support an error callback function. I can't use the global ajax error handling code here, a local error function would be ideal.

文件回调中获取数据/ textStatus似乎不正确 - 回调得既不

Documentation that the callback gets data/textStatus seems incorrect - the callback gets neither.

我如何检测调用getScript加入失败(服务器不可用,例如)有什么建议?

Any suggestions on how I detect that a call to getScript failed (server not available, for instance)?

编辑:只是看着源,它似乎是回调时才会激活成功,数据始终设置为null,textStatus没有定义的(因为它是一个成功的,只是回调,我presume)。该文档是非常不正确的此功能。

Just looked at source, and it seems like the callback is only invoked on success, with data always set to null and textStatus not defined (since it's a success-only callback, I presume). The documentation is very incorrect for this function.

推荐答案

这是一个黑客位,但..

This is a bit of a hack, but..

您可以宣布脚本里面的变量加载,并检查它已加载脚本(假定完成功能还是触发)后:

You could declare a variable inside the scripts you load and check for it after you've loaded a script (assuming that the complete-function still fires):

script_test.js:

script_test.js:

var script_test = true;

然后:

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

或者你可以试试,看看无论是在脚本中,确实存在 - 函数,变量,对象等。 一个更通用的方法,这样做会增加你要加载的脚本里面自动执行的功能,使它们在你的主脚本执行函数:

Or you could just try and see if whatever is in your script, actually exists--functions, variables, objects, etc. A more generic way to do this would be adding a self-executing function inside the scripts you want to load, and make them execute a function in your "main" script:

main_script.js:

main_script.js:

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

$.getScript("script_test.js");

script_test.js:

script_test.js:

(function ()
{
    scriptLoaded("script_test.js");
})();
 
精彩推荐
图片推荐