var xmlHttp = false; try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { xmlHttp = false; } } |
您对这些代码可能还不完全理解,但没有关系。当本系列文章结束的时候,您将对 JavaScript 编程、错误处理、条件编译等有更深的了解。现在只要牢牢记住其中的两行代码:
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
和
xmlHttp = new
ActiveXObject("Microsoft.XMLHTTP");
。
这两行代码基本上就是尝试使用一个版本的 MSXML 创建对象,如果失败则使用另一个版本创建该对象。不错吧?如果都不成功,则将
xmlHttp
变量设为 false,告诉您的代码出现了问题。如果出现这种情况,可能是因为安装了非
Microsoft 浏览器,需要使用不同的代码。
如果选择的浏览器不是 Internet Explorer,或者为非 Microsoft 浏览器编写代码,就需要使用不同的代码。事实上就是 清单 1 所示的一行简单代码:
var xmlHttp = new XMLHttpRequest object;
。
这行简单得多的代码在 Mozilla、Firefox、Safari、Opera 以及基本上所有以任何形式或方式支持 Ajax
的非 Microsoft 浏览器中,创建了 XMLHttpRequest
对象
以支持多种浏览器的方式创建 XMLHttpRequest 对象
var xmlHttp = false; if (!xmlHttp && typeof XMLHttpRequest != 'undefined') { xmlHttp = new XMLHttpRequest(); } |