Ajax 浏览器支持
并非所有的浏览器都支持 Ajax。下面是一个支持 Ajax 的主流浏览器列表:
当我们编写下一个应用程序时,要考虑那些不支持 Ajax 的浏览器。
注意:当我们说某个浏览器不支持 Ajax 时,只是意味着该浏览器不支持创建 JavaScript 对象 XMLHttpRequest 对象。
针对浏览器编写代码让我们的源代码兼容浏览器最简单的方式就是在我们的 JavaScript 中使用 try..catch 块。
<html> <body> <script language="javascript" type="text/javascript"> <!-- // 支持浏览器的源码 function AjaxFunction(){ var AjaxRequest; // 缓存XHR对象便于 Ajax 使用 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){ // 错误处理 alert("Your browser broke!"); return false; } } } } //--> </script> <form> Name: <input type='text' /> <br /> Time: <input type='text' /> </form> </body> </html>在上面的 JavaScript 代码中,我们三次尝试获得 XMLHttpRequest 对象。下面是第一次尝试:
这适用于 Opera 8.0+,FireFox 和 Safari 浏览器。如果它失败,接下来我们两次尝试针对 IE 浏览器创建正确的对象:
如果它还是不工作,那么我们可能在使用一个不支持 XMLHttpRequest 的非常过时的浏览器,这也意味着它不支持 Ajax。
但最有可能的是,我们的 AjaxRequest 变量现在被设置为浏览器使用的 XMLHttpRequest 标准并可以开始发送数据到服务器。下一章会解释分步进行的 Ajax 工作流。