2

是否可以在 $.getScript() 中创建一个条件,如果第一个 js 脚本无法加载 - 无论出于何种原因 - 然后运行第二个 js?比如备份?

有什么方法可以使用 jQuery 1.2 和/或 1.4?

非常感谢!

4

2 回答 2

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() 。

于 2012-04-19T20:36:43.787 回答
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
  }
});
于 2012-04-19T20:37:57.250 回答