Ajax 浏览器支持

2年前 阅读 147 评论 0 赞 0

Ajax 浏览器支持

并非所有的浏览器都支持 Ajax。下面是一个支持 Ajax 的主流浏览器列表:

  • Mozilla FireFox 1.0 及以上版本。
  • Netscape 7.1 及以上版本。
  • Apple Safari 1.2 及以上版本。
  • 微软 IE 5 及以上版本。
  • Konqueror。
  • Opera 7.6 及以上版本。

当我们编写下一个应用程序时,要考虑那些不支持 Ajax 的浏览器。

注意:当我们说某个浏览器不支持 Ajax 时,只是意味着该浏览器不支持创建 JavaScript 对象 XMLHttpRequest 对象。

针对浏览器编写代码

让我们的源代码兼容浏览器最简单的方式就是在我们的 JavaScript 中使用 try..catch 块。

  1. <html>
  2. <body>
  3. <script language="javascript" type="text/javascript">
  4. <!--
  5. // 支持浏览器的源码
  6. function AjaxFunction(){
  7. var AjaxRequest; // 缓存XHR对象便于 Ajax 使用
  8. try{
  9. // Opera 8.0+, Firefox, Safari
  10. AjaxRequest = new XMLHttpRequest();
  11. }catch (e){
  12. // Internet Explorer Browsers
  13. try{
  14. AjaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  15. }catch (e) {
  16. try{
  17. AjaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  18. }catch (e){
  19. // 错误处理
  20. alert("Your browser broke!");
  21. return false;
  22. }
  23. }
  24. }
  25. }
  26. //-->
  27. </script>
  28. <form name='myForm'>
  29. Name: <input type='text' name='username' /> <br />
  30. Time: <input type='text' name='time' />
  31. </form>
  32. </body>
  33. </html>

在上面的 JavaScript 代码中,我们三次尝试获得 XMLHttpRequest 对象。下面是第一次尝试:

  • AjaxRequest = new XMLHttpRequest();

这适用于 Opera 8.0+,FireFox 和 Safari 浏览器。如果它失败,接下来我们两次尝试针对 IE 浏览器创建正确的对象:

  • AjaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  • AjaxRequest = new ActiveXObject("Microsoft.XMLHTTP");

如果它还是不工作,那么我们可能在使用一个不支持 XMLHttpRequest 的非常过时的浏览器,这也意味着它不支持 Ajax。

但最有可能的是,我们的 AjaxRequest 变量现在被设置为浏览器使用的 XMLHttpRequest 标准并可以开始发送数据到服务器。下一章会解释分步进行的 Ajax 工作流。

你的支持将鼓励作者继续创作

评论(0)

(无)