3

プログレッシブエンハンスメントの大ファンとして、私はブラウザの機能をテストするためにModernizrを使用しています。Modernizrを使用してブラウザーのAJAX(具体的には、jQueryのAJAX関数)のサポートをテストするにはどうすればよいですか?

4

3 に答える 3

8

これをテストするのにModernizerは必要ありません。jQueryには組み込みです。

if (jQuery.support.ajax) {
    alert("Ajax is supported!");
}

$.ajaxサポートされていないときにjQueryが呼び出しを処理する方法は正確にはわかりませんが。サイレントに失敗するか、エラーコールバックをトリガーします。それがあなたにとって重要であるならば、あなたはそれをテストするべきです。

于 2012-10-18T18:31:22.693 に答える
3

価値があるので、AJAXのテストを追加するためにModernizrに問題#734を追加し、テストを開発し、テストするためのJSFiddleを作成しました...そして、プルリクエスト(問題#735)を開始しましたModernizrを維持している立派な人々。

関連するJS:

Modernizr.addTest('ajax', function() {
    var xhr = new XMLHttpRequest();
    return !!('onreadystatechange' in xhr);
});
于 2012-10-23T15:24:22.670 に答える
1

質問に関連する場合と関連しない場合がありますが、jqueryajaxの例外処理を使用できます。Kevin B.の質問に例外処理なしで答えると、サイレントに失敗します(コールバックは何も返しません)。したがって、何かを表示したい場合は、例外処理を使用してください。

簡単な例:

$.ajax({
type: "POST",
url: "ajax_page.php",
success: function(data, status, xhr) {
// perform operations on success
alert('Success');
},
error: function(xhr, status, error) {
// perform operations on error
alert(xhr.responseText);
}
});
于 2012-10-18T19:44:59.613 に答える