JavaScript的Ajax数据请求与浏览器兼容
2015-10-19 18:17
706 查看
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(); }
相关文章推荐
- 本地部署ArcGIS API for JavaScript
- js中prototype用法(转)
- js去除字符串中重复的编号,并删除自己的编号
- js处理字符串的substr()slice()substring()match()replace()用法
- js中的fadeIn()
- js保留两位小数点
- JS转换Date日期格式
- JSON使用
- js固定在顶部
- js原生弹出窗
- 使用JS的FormData对象
- CommonJS Modules/1.0 规范
- js中操作cookie
- javascript 自定义事件
- javascript的一点误解
- javascript:设置URL参数的方法,适合多条件查询
- js验证身份证号有效性并提示对应信息
- js基础知识
- 写了10年Javascript未必全了解的连续赋值运算
- js变量以及其作用域详解