1、問題描述
IE5是第一款引入對象的瀏覽器。在IE5中,對象是通過MSXML庫中的一個對象實現的。因此,在IE中可能遇到3中不同版本的對象,即.、..3.0和..6.0。要使用MSXML庫中的對象瀏覽器兼容性問題面試,需要創建一個通用的函數用以根據IE中可用的MSXML庫情況創建最新版本的對象。
2、解決方案
IE7、、Opera、和都支持原生的對象,在這些瀏覽器中創建對象需要使用構造函數:var xhr = new ();
因此,如果必須支持IE的早期版本,這可通過如下方式創建()函數,用于對所有支持對象的瀏覽器瀏覽器兼容性問題面試,如下示例代碼:
function createXHR() {

if (typeof ActiveXObject !== "undefined") {
createXHR = function() {
if (typeof arguments.callee.activeXString != "string") {
var versions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp" ];
for ( var i = 0, len = versions.length; i < len; i++) {
try {

var xhr = new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
return xhr;
} catch (error) {
// TODO
}

}
}
return new ActiveXObject(arguments.callee.activeXString);
};
} else if (typeof XMLHttpRequest !== "undefined") {

createXHR = function() {
return new XMLHttpRequest();
};
} else {
createXHR = function() {
throw new Error("No XHR object avaliable.");

};
}
return createXHR();
}
3、參考
無。