日期:2014-05-16  浏览次数:20699 次

Ajax浏览器版本兼容问题
有个问题纠结了我好久,实在搞不定,求救啊,请各位帮帮忙。似乎是关于浏览器版本兼容问题的,因为我用FireFox,Chrome,IE9测试都没有问题出现,而用IE8或更低的版本就出现问题了,从网上找到一些关于解决Ajax浏览器兼容问题的代码,还有根据在书上看到,其中关于创建XMLHttpRequest写的代码是这样:
JScript code
var XMLHttpReq;
     //创建XMLHttpRequest对象       
    function createXMLHttpRequest() {
        if(window.XMLHttpRequest) { //Mozilla 浏览器
            
            XMLHttpReq = new XMLHttpRequest();
            window.alert(XMLHttpReq);//测试
        }
        else if (window.ActiveXObject) { // IE浏览器
            try {
                XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
                window.alert(XMLHttpReq);//测试
            } catch (e) {
                try {
                    XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
                    window.alert(XMLHttpReq);//测试
                     
                } catch (e){
                     alert("您的浏览器不支持AJAX!");
                     return false;
                }
            }
        }
    }

但是结果却发现:在下面这个语句中:if(window.XMLHttpRequest),无论是FireFox还是IE9,IE8判断出来的竟然都是通过的,但是用XMLHttpReq = new XMLHttpRequest()这一句创建的时候,根据window.alert(XMLHttpReq)发现,FireFox、IE9都是能够正常创建的,但是IE8这里就没有正常创建XMLHttpRequest,根据在网上查到的我知道IE是没法用XMLHttpReq = new XMLHttpRequest()来创建XMLHttpRequest,可在判断window.XMLHttpRequest,想用XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP")来创建XMLHttpRequest都没法实现,请各位高手帮帮忙~~

------解决方案--------------------
现在写一行就能完成这些工作, 

XMLHttpReq = window.XMLHttpRequest? new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");

就可以了