并不是所有的瀏覽器都支持AJAX,以下是支持AJAX的主要瀏覽器:
• Mozilla Firefox 1.0及以上版本。
• Netscape 7.1及以上版本。
• Apple Safari 1.2及以上版本。
• Microsoft Internet Explorer 5及更高版本。
• Konqueror。
• Opera 7.6及以上版本。
• 國(guó)產(chǎn)主流的瀏覽器。
編寫(xiě)下一個(gè)應(yīng)用程序時(shí),最好要考慮不支持AJAX的瀏覽器時(shí)如何處理。
注 - 當(dāng)瀏覽器不支持AJAX時(shí),它只是意味著瀏覽器不支持創(chuàng)建Javascript XMLHttpRequest對(duì)象。
使源代碼與瀏覽器兼容的最簡(jiǎn)單方法是在JavaScript中使用try ... catch塊。
<html>
<body>
<script language = "javascript" type = "text/javascript">
<!--
//Browser Support Code
function ajaxFunction() {
var ajaxRequest; // The variable that makes Ajax possible!
try {
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e) {
// Internet Explorer Browsers
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
}
//-->
</script>
<form name = 'myForm'>
Name: <input type = 'text' name = 'username' /> <br />
Time: <input type = 'text' name = 'time' />
</form>
</body>
</html>
在上面的JavaScript代碼中,我們嘗試三次來(lái)創(chuàng)建XMLHttpRequest對(duì)象。第一次嘗試:
ajaxRequest = new XMLHttpRequest();
它適用于Opera 8.0 +,F(xiàn)irefox和Safari瀏覽器。如果失敗,再嘗試兩次為Internet Explorer瀏覽器創(chuàng)建正確的對(duì)象
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
如果它不起作用,那么這里一個(gè)非常過(guò)時(shí)的瀏覽器,它不支持XMLHttpRequest,這也意味著它不支持AJAX。
但最有可能的是,變量ajaxRequest現(xiàn)在將被設(shè)置為瀏覽器使用任何XMLHttpRequest標(biāo)準(zhǔn),我們可以開(kāi)始向服務(wù)器發(fā)送數(shù)據(jù)。具體的AJAX工作流程將在下一章中介紹。