Support AJAX des navigateurs
Support AJAX des navigateurs
La clé de voûte d'AJAX est l'objet XMLHttpRequest.
Les navigateurs utilisent différentes méthodes pour créer cet objet.
Internet Explorer utilise ActiveXObject, alors que d'autres navigateurs utilisent l'objet nommé XMLHttpRequest présent
en natif dans JavaScript.
Pour créer cet objet et pouvoir faire fonctionner vos scripts avec différents navigateurs, nous allons utiliser une
commande "try and catch". Vous pouvez en savoir plus sur cette commande dans le tutoriel try and catch .
Mettons à jour le fichier "testAjax.htm" avec le code JavaScript qui crée l'objet XMLHttpRequest :
<html>
<body>
<script type="text/javascript">
function ajaxFunction() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e) { // Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
}
</script>
<form name="myForm">
Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>
</body>
</html>
Explication de l'exemple:
En premier, création de la variable xmlHttp pour contenir l'objet XMLHttpRequest.
Ensuite on tente de créer l'objet avec XMLHttp=new XMLHttpRequest(). Ceci fonctionne pour les navigateurs Firefox,
Opera, et Safari. Si la création échoue, on essaye xmlHttp=new ActiveXObject("Msxml2.XMLHTTP") qui est la demande
pour Internet Explorer 6.0+, si cela échoue, on essaie xmlHttp=new ActiveXObject("Microsoft.XMLHTTP") qui convient
pour Internet Explorer 5.5+
Si aucune des trois méthodes ne marche, l'utilisateur a un navigateur très ancien et se verra averti par une alerte
indiquant que le navigateur ne supporte pas AJAX.
Note: Le code spécifique aux navigateurs ci-dessus est long et assez complexe. Toutefois, c'est le code que vous
utiliserez à chaque création d'un objet XMLHttpRequest, et un simple copier coller fera l'affaire.
La prochaine page montre comment utiliser l'objet XMLHttpRequest pour communiquer avec le serveur.