xmlHttp在FF&IE中的应用以及Javascript全局变量

这是今天遇到的两个问题,在Ajax应用日益火爆的今天,是否应用Ajax技术已成为一个网站的脸面问题,而Ajax的核心技术xmlHttp在FF及IE中不同的调用方法却也是让很多开发者头痛的问题之一。下面的代码在IE、FF、Opera中通过

function createXmlHttp() { 
var A=null; 
        try { 
                A=new ActiveXObject("Msxml2.XMLHTTP"); 
        } catch(e) { 
                try { 
                        A=new ActiveXObject("Microsoft.XMLHTTP"); 
                } catch(oc){ 
                } 
        } 
        if ( !A && typeof XMLHttpRequest != "undefined" ) { 
                A=new XMLHttpRequest(); 
        } 
        return A; 
} 
 
function getReady() { 
        if(xmlDom.readyState==4) { 
                if(xmlDom.status==200) { 
                        alert(xmlDom.responseText); 
                } else { 
                        alert("Error:" + xmlDom.statusText); 
                } 
        } 
} 
xmlDom  = createXmlHttp(); 
var url = 'ajax_test.php'; 
xmlDom.onreadystatechange = getReady; 
xmlDom.open("GET",url,true); 
xmlDom.send(null);

另外还遇到一个问题,如果将最后5行代码封装为函数,将遇到xmlHttp变量初始化后为局部变量为其他函数使用,但如果放到函数外作为全局变量则当前页面只能执行一次xmlHttp方法。查询了大量资料后,发现解决这个问题的方法也相当的简单,在函数中,只需将变量定义前的var去掉,则此变量为全局变量

Leave a Reply