2

$.getScript() で、最初の js スクリプトが何らかの理由でロードに失敗した場合に、2 番目の 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 に答える