ajax 之js读取xml的多浏览器兼容
主要是分为两大类:IE、其它浏览器
IE8以下只支持这种
InputVoltage.innerText = xmlDoc.getElementsByTagName(id)[0].text,
其它浏览器大部分兼容这种
InputVoltage.innerHTML =xmlDoc.getElementsByTagName(id)[0].textContent。
部分代码如下:
function Gett(str)
{ // 判断MyBrowserType,以决定读取text还textcontent。
var browsertype= checkBrowser();
var url="curr_run_xml.php";
// code for IE7+, Firefox, Chrome, Opera, Safari
try{ xmlHttp=new XMLHttpRequest();
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState==4 && xmlHttp.status==200)
{ xmlDoc=xmlHttp.responseXML;
InputVoltage.innerHTML = GetXmlTextByTagName(xmlDoc,"input_vol_a")
OutputVoltage.innerHTML = GetXmlTextByTagName(xmlDoc,"output_vol_a");
OutputMinVoltage.innerHTML = GetXmlTextByTagName(xmlDoc, "output_min_vol");
OutputMaxVoltage.innerHTML = GetXmlTextByTagName(xmlDoc, "output_max_vol");
Frequency.innerHTML = GetXmlTextByTagName(xmlDoc, "input_fre");
CurrentLoad.innerHTML = GetXmlTextByTagName(xmlDoc, "output_load_a"); <?php if(isset($rs))
{
foreach ($rs as $key => $value)
{
echo $value['dp_paramname'].".innerHTML=GetXmlTextByTagName(xmlDoc,'".$value['dp_paramname']."');\r\n";
}
} for($i=0;$i<count($resultHT);$i++)
{
$humidityVar = "td_humidity".$i;
$temperatureVar = "td_temperature".$i;
$ht_offline = "td_offline".$i;
echo $ht_offline.".innerHTML=GetXmlTextByTagName(xmlDoc,'".$ht_offline."');\r\n";
echo $humidityVar.".innerHTML=GetXmlTextByTagName(xmlDoc,'".$humidityVar."');\r\n";
echo $temperatureVar.".innerHTML=GetXmlTextByTagName(xmlDoc,'".$temperatureVar."');\r\n";
} ?> BatteryVoltage.innerHTML = GetXmlTextByTagName(xmlDoc,"batt_total_vol");
BatteryContent.innerHTML = GetXmlTextByTagName(xmlDoc,"batt_cap");
UPSCTemperature.innerHTML = GetXmlTextByTagName(xmlDoc,"ups_temp");
tfvar = GetXmlTextByTagName(xmlDoc,"ups_temp");
fTemp = parseFloat(tfvar);
fTemp = (fTemp*9)/5+32;
tfnum = fTemp.toFixed(2);
UPSFTemperature.innerHTML=tfnum.toString(); state1 = GetXmlTextByTagName(xmlDoc,"ws_value7");
state2 = GetXmlTextByTagName(xmlDoc,"ws_value4");
state3 = GetXmlTextByTagName(xmlDoc,"ws_value6");
state4 = GetXmlTextByTagName(xmlDoc,"ws_value5");
state5 = GetXmlTextByTagName(xmlDoc,"ws_value0");
state6 = GetXmlTextByTagName(xmlDoc,"ws_value1");
state7 = GetXmlTextByTagName(xmlDoc,"ws_value3");
state8 = GetXmlTextByTagName(xmlDoc,"ws_value2"); changeImage();
changeWord();
}
}
xmlHttp.open("GET",url,false);
xmlHttp.send(null);
}
catch (e)
{ xmlHttp = -1;
var XmlHttpVersions = new Array("Microsoft.XMLDOM,MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP","Microsoft.XMLHTTP","MSXML4.DOMDocument", "MSXML3.DOMDocument", "MSXML2.DOMDocument", "MSXML.DOMDocument");
for (var i = 0; i < XmlHttpVersions.length ; i++)
{
try {
if(xmlHttp = new ActiveXObject(XmlHttpVersions[i]))
{ break;
} }
catch (e)
{
continue;
}
} if (!xmlHttp) alert("获取浏览器xml控件失败"); xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState==4 && xmlHttp.status==200)
{ xmlDoc=xmlHttp.responseXML;
InputVoltage.innerText = GetXmlTextByTagName(xmlDoc,"input_vol_a")
OutputVoltage.innerText = GetXmlTextByTagName(xmlDoc,"output_vol_a");
OutputMinVoltage.innerText = GetXmlTextByTagName(xmlDoc, "output_min_vol");
OutputMaxVoltage.innerText = GetXmlTextByTagName(xmlDoc, "output_max_vol");
Frequency.innerText = GetXmlTextByTagName(xmlDoc, "input_fre");
CurrentLoad.innerText = GetXmlTextByTagName(xmlDoc, "output_load_a"); <?php if(isset($rs))
{
foreach ($rs as $key => $value)
{
echo $value['dp_paramname'].".innerText=GetXmlTextByTagName(xmlDoc,'".$value['dp_paramname']."');\r\n";
}
} for($i=0;$i<count($resultHT);$i++)
{
$humidityVar = "td_humidity".$i;
$temperatureVar = "td_temperature".$i;
echo $humidityVar.".innerText=GetXmlTextByTagName(xmlDoc,'".$humidityVar."');\r\n";
echo $temperatureVar.".innerText=GetXmlTextByTagName(xmlDoc,'".$temperatureVar."');\r\n";
} ?> BatteryVoltage.innerText = GetXmlTextByTagName(xmlDoc,"batt_total_vol");
BatteryContent.innerText = GetXmlTextByTagName(xmlDoc,"batt_cap");
UPSCTemperature.innerText = GetXmlTextByTagName(xmlDoc,"ups_temp");
tfvar = GetXmlTextByTagName(xmlDoc,"ups_temp");
fTemp = parseFloat(tfvar);
fTemp = (fTemp*9)/5+32;
tfnum = fTemp.toFixed(2);
UPSFTemperature.innerText=tfnum.toString(); state1 = GetXmlTextByTagName(xmlDoc,"ws_value7");
state2 = GetXmlTextByTagName(xmlDoc,"ws_value4");
state3 = GetXmlTextByTagName(xmlDoc,"ws_value6");
state4 = GetXmlTextByTagName(xmlDoc,"ws_value5");
state5 = GetXmlTextByTagName(xmlDoc,"ws_value0");
state6 = GetXmlTextByTagName(xmlDoc,"ws_value1");
state7 = GetXmlTextByTagName(xmlDoc,"ws_value3");
state8 = GetXmlTextByTagName(xmlDoc,"ws_value2"); changeImage();
changeWord(); xmlHttp = null;
}
} xmlHttp.open("GET",url,false);
xmlHttp.send(null); } setTimeout("Gett()",time_inteval);
}
function check(reg) {
var ug = navigator.userAgent.toLowerCase();
return reg.test(ug);
}
function checkBrowser()
{
var ug = navigator.userAgent.toLowerCase();
// var userAgent = document.getElementById("userAgent");
// userAgent.innerHTML = "浏览器的用户代理报头:" + ug;
//alert("浏览器的用户代理报头:" + ug);
var browserType = "";
var ver = "";
//检测IE及版本
var IE = ug.match(/msie\s*\d\.\d/); //提取浏览器类型及版本信息,注match()方法返回的是数组而不是字符串
var isIE = check(/msie/);
if(isIE) {
browserType = "Internet Explorer";
ver = IE.join(" ").match(/[0-9]/g).join("."); //先用join()方法转化为字符串,然后用match()方法匹配到版本信息,再用join()方法转化为字符串
MyBrowserType=1;
}
//检测chrome及版本
var chrome = ug.match(/chrome\/\d\.\d/gi);
var isChrome = check(/chrome/);
if(isChrome) {
browserType = "Chrome";
//ver = chrome.join(" ").match(/[0-9]/g).join(".");
MyBrowserType=2;
}
//检测firefox及版本
var firefox = ug.match(/firefox\/\d\.\d/gi);
var isFirefox = check(/firefox/);
if(isFirefox) {
browserType = "Firefox";
ver = firefox.join(" ").match(/[0-9]/g).join(".");
MyBrowserType=3;
}
return browserType;
}
function GetXmlTextByTagName(xmlDoc,id)
{
var Obj, szTxt = "";
try
{
Obj = xmlDoc.getElementsByTagName(id);
if (typeof(Obj) == "undefined")
{
return szTxt;
}
else if ((Obj = Obj.item(0)) == null)
{
return szTxt;
}
else
{ if(MyBrowserType==1)
szTxt = Obj.text;
else
szTxt = Obj.textContent; }
}
catch (objException)
{
}
return szTxt;
}
ajax 之js读取xml的多浏览器兼容的更多相关文章
- Js读取XML文件为List结构
习惯了C#的List集合,对于Javascript没有list 极为不舒服,在一个利用Js读取XML文件的Demo中,决定自己构建List对象,将数据存入List. 第一步,Js读取XML文件知识 X ...
- js 解析XML 在Edge浏览器下面 无法准确读到节点属性值
js 解析XML 在Edge浏览器下面 无法准确读到节点属性值 Dom.documentElement.childNodes[j].attributes[2] 这个是大众写法 在win10的edge ...
- JS读取XML文件数据并以table显示数据(兼容IE火狐)
先看xml文件: <?xml version="1.0" standalone="yes"?> <student> <stuinf ...
- IE下JS读取xml文件示例代码
JS读取xml文件具体步骤为:创建DOM对象.加载xml文件(仅适用于IE)附示例代码,感兴趣的朋友可以参考下,希望对大家有所帮助使用javascript脚本读取xml文件,这里暂只考虑IE浏览器st ...
- jQuery、JS读取xml文件里的内容(JS先通过document.implementation.createDocument方法将xml转换成document对象,jQuery将读取到的xml转成table)
xml文件:test.xml <?xml version="1.0"?> <note> <to>George</to> <fr ...
- JS控制CSS3,添加浏览器兼容前缀
不同浏览器对于有些css3属性名字定义的时候,会带上特有的前缀,所以在css编写的时候,经常会一个属性写多个不同的前缀进行兼容.比如: div { transform: rotate(30deg); ...
- JS读取xml
xml文件 <?xml version="1.0" encoding="utf-8"?> <root> <data id=&quo ...
- js 读取xml文件
读取xml文件 [原创 2007-6-20 17:35:37] 字号:大 中 小 js中读取xml文件,简单的例子: <html><head><script> ...
- 【JavaScript】JS读取XML文件并进行搜索
需求效果 点击链接.当前页面载入xml文件并展示相应内容 通过搜索框.搜索xml文件内节点数据.展示包括内容的节点数据 功能实现 Demo终于实现效果 http://loadxmldemo.coder ...
随机推荐
- android用欢迎界面加载运行环境
以前一直以为splash页只是图好玩.. 今天才知道是应该把环境加载放在这个页面... 论坛和github上太多仿XXX的项目果然只能学习下ui的思路... 以前把环境加载放在application里 ...
- 关于页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
需求 最近在做博客的目录功能,发现一个在现代浏览器间的一个bug,或是称之为差异,即页面滚动值(scrollTop)的获取与设定. 在此之前先说一下关于页面元素的坐标获取,这张图的经典性不必再提. 实 ...
- 4G时代的抢钱之道
最近最大的事件恐怕就是移动的4G上线了,50元600M起计价,上网速度最高理论到达100Mbps,相当于一秒下载10MB的数据,或者是一分钟下载一张VCD(600M)电影. 当然,对于这样的流量套餐, ...
- SequoiaDB 系列之六 :源码分析之coord节点
好久不见. 在上一篇SequoiaDB 系列之五 :源码分析之main函数,有讲述进程开始运行时,会根据自身的角色,来初始化不同的CB(控制块,control block). 在之前的一篇Sequ ...
- Javascript基础系列之(七)函数(定义和调运函数)
函数是一个可以随时运行的语句,简单说,函数是完成某个功能的一组语句,它接受0或者多个参数. 函数的基本语法如下 function functionName([arg0,arg1,......argN] ...
- centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记
centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记 目录[-] 过程 1.安装RVM 2.利用rvm安装 Ruby 1.9.3 并设为默认 3.安装rails 4.安装 ...
- hibernate事务
hibernate事务 9.3 Hibernate的事务管理 事务(Transaction)是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改 ...
- 在Oracle里,表的别名不能用as,列的别名可以用as
列的别名也可以不用as,如:select t.a xxx from table t 在Oracle数据库中,数据表别名是不能加as的,例如: select a.appname from appinfo ...
- 整数划分 (区间DP)
整数划分(四) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近 ...
- selenium ide 录制回放link链接报错
回放是出现以下错误: 也就是回放点击打开新的链接时出现这个错误, 这个问题说的是 点击此链接会新打开一个窗口 selenium1是不支持多窗口切换的 因此会卡在这里,也就录制不支持这个操作,但是很多书 ...