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 ...
随机推荐
- redis async client 与自有框架集成
hiredis的异步接口已经支持ae libuv libev 和 libevent集成,具体头文件可以参见redis/deps/hiredis/adapters,样例参见redis/deps/hire ...
- ionic 设置logo 与 设置 启动页
1.在项目的根目录下创建resources文件夹. 2.在文件夹中都放入icon.png(应用图标,最小192x192px,不带圆角),splash.png(启动屏幕,最小2208x2208px,中间 ...
- PS转换图片——我教你
将图片转换为web格式所有格式,选png8 或者gif 16位
- 完美实现开机启动虚拟WIFI,顺便实现目前的WP8系统使用VPN(7.1修)
众所周知,windows7系统的机器若带有无线网卡(台式机可以买一个USB无线网卡,京东目前39元,TP-Link的),可以虚拟出wifi,供手机等移动设备使用. 虚拟的WIFI的命了和软件在网上都找 ...
- 安装xampp二三事
1.chrome 找不到页面时会自动跳转到hao123 安装完chrome后,想测试下localhost,结果找不到页面,当然正常的显示是“该页面无法显示”才对,可恨啊,总是直接转到hao123页面上 ...
- Hibernate-一级缓存session
hibernate提供的一级缓存 hibernate是一个线程对应一个session,一个线程可以看成一个用户.也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和 ...
- Java基础-静态代理与动态代理比较
JAVA的静态代理与动态代理比较 静态代理类: 由程序员创建或由特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了.动态代理类: 在程序运行时,运用反射机制动态创建 ...
- 【CodeForces 605A】BUPT 2015 newbie practice #2 div2-E - Sorting Railway Cars
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=102419#problem/E Description An infinitely lon ...
- config 写入
d代码: # __author__ = liukun # coding:utf-8 line = input("please input the config \n :") #提示 ...
- NOI题库-小学奥赛QwQ
今天Loli教育我们让我们来看看NOI题库的奥赛部分,不过,为何是小学的( ⊙ o ⊙ )啊!感觉智商被各种侮辱. 余数相同问题: 描述 已知三个正整数 a,b,c. 现有一个大于1的整数x,将其作为 ...