$.getScript() で、最初の js スクリプトが何らかの理由でロードに失敗した場合に、2 番目の js を実行する条件を作成することは可能ですか? バックアップのような?
これをjQuery 1.2および/または1.4で機能させる方法はありますか?
どうもありがとう!
$.getScript() で、最初の js スクリプトが何らかの理由でロードに失敗した場合に、2 番目の js を実行する条件を作成することは可能ですか? バックアップのような?
これをjQuery 1.2および/または1.4で機能させる方法はありますか?
どうもありがとう!
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() を実行できない理由はありません。
これについてのドキュメントを読みましたか?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
}
});