JavaScript的Ajax数据请求与浏览器兼容

来源:互联网 发布:mac文件储存在file 编辑:程序博客网 时间:2024/05/16 15:51
var ajaxRequest = function (url, callback) {    var xmlhttp = createXmlHttpRequest();    if (xmlhttp === null) {        alert("你的浏览器不支持 XMLHttpRequest");        return;    }    else {        this.xhr = xmlhttp;    }    var scope = this;    this.xhr.onreadystatechange = function () {        if (scope.xhr.readyState === 4) {            if (scope.xhr.status === 200 || scope.xhr.status === 0) {                if (callback !== undefined) {                    callback(scope.xhr);                }            }            else {            }        }    };    this.request = function () {        try {            scope.xhr.open('GET', url, true);            scope.xhr.send(null);        } catch (e) {        }    }}function createXmlHttpRequest() {    var xhr_h = null;    if (window.XMLHttpRequest) { //For IE7+, Firefox, Chrome, Opera, Safari        xhr_h = new XMLHttpRequest();        if (xhr_h.overrideMimeType) {            xhr_h.overrideMimeType("text/xml");        }    }    else if (window.ActiveXObject) {        try {            xhr_h = new ActiveXObject("msxml2.xmlhttp");        }        catch (e) {            xhr_h = new ActiveXObject("microsoft.xmlhttp");        }    }    return xhr_h;}

var xmlParse = function (xmlFile) {    var xmlDoc = null;    if (window.XMLHttpRequest) { //For IE7+, Firefox, Chrome, Opera, Safari        var parser = new DOMParser();        xmlDoc = parser.parseFromString(xmlFile, "text/xml");    }    else if(window.ActiveXObject){        try {            xmlDoc = new ActiveXObject("MSXML2.DOMDocument.3.0");            xmlDoc.async = false;            xmlDoc.loadXML(xmlFile);        } catch (e) {            try {                xmlDoc = new ActiveXObject('Microsoft.XMLDOM');                xmlDoc.async = false;                xmlDoc.loadXML(xmlFile);            } catch (e2) {                xmlDoc = null;                alert(e.message);            }        }    }    return xmlDoc;}
var requestBNodes = function(url){//解析        var request = new ajaxRequest(url,function(xhr){            var xmlDoc = xmlParse(xhr.responseText);            var versions = xmlDoc.getElementsByTagName("Version");                                    if (scope.callback != false) {                scope.callback();            }        });        request.request();}




1 0