是否有可能在$ .getScript()中创建一个条件,如果第一个js脚本无法加载 - 无论出于何种原因 - 然后运行第二个js?像备份?
任何使用jQuery 1.2和/或1.4的方法都可以吗?
非常感谢!
答案 0 :(得分:3)
只要您使用的是jQuery 1.5或更高版本,$ .getScript()就会返回一个Promise,因此您可以将一个函数附加到成功和失败。他们在他们的文档中显示了一个例子,他们如此依次失败:
$.getScript("ajax/test.js")
.done(function(script, textStatus) {
console.log( textStatus );
})
.fail(function(jqxhr, settings, exception) {
$( "div.log" ).text( "Triggered ajaxError handler." );
});
没有理由不能在.fail()调用的函数中执行另一个$ .getScript()。
答案 1 :(得分:1)
您是否为此阅读了文档?很明显,从jquery 1.5开始,你可以使用.fail()
$.getScript("ajax/test.js")
.done(function(script, textStatus) {
console.log( textStatus );
})
.fail(function(jqxhr, settings, exception) {
$( "div.log" ).text( "Triggered ajaxError handler." );
});
在此之前,您使用全局ajax错误:
$( "div.log" ).ajaxError(function(e, jqxhr, settings, exception) {
if (settings.dataType=='script') {
$(this).text( "Triggered ajaxError handler." );
}
});
或更实际,只是不要依赖于getscript,并使用.ajax fn:
$.ajax({
url: url,
dataType: "script",
success: success,
error:function(){
//load the second script here
}
});