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 ...
随机推荐
- unity3d 赛车游戏——复位点检测
一直没有时间写博客 昨天我的CarWaypoints插件也告一段落了 今年没回家,过年就我一个人 挺无聊的,那就休息一天写几篇博客吧 我的代码可能很少,但是思路很重要 希望不懂的朋友别只copy代码 ...
- unity3d 纹理动画
不知道大家有没有玩过赛车游戏 赛车游戏的跑道有路标,如下图 玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动 不会发动态图,大家脑补一下吧 没有玩过赛车游戏的也不要紧,大家 ...
- 云计算之路-阿里云上:2014年6月12日16:14遭遇SLB故障
这是今天遇到的第3次故障,故障是首先被园友发现的,访问园子出现来自SLB的错误提示:400 Bad Request - Powered by Tengine. 查看Windows性能监视器发现,在故障 ...
- Java问题:Quartz,Hibernate,Spring,Tomcat中定时任务无故停止,没有错误
最近在做一个java项目的时候遇到一个十分奇怪的问题,想到大家可能也会遇到这样的问题,所以在此发出来,希望大家遇到的时候能够快速解决! 直入主题 问题:使用quartz进行定时任务自动执行的时候,用到 ...
- Dandelion - Distributed Computing on GPU Clusters
linq on GPUs 非常期待中 看起来很cool,期望早点面世
- [bzoj 2431][HAOI2009]逆序对数列(递推+连续和优化)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2431 分析: f(i,j)表示前i个数字逆序对数目为j时候的方案数 那么有f(i,j) ...
- beta版本贡献率
队名:攻城小分队 031302410 郭怡锋 : 占比:50% 031302411 洪大钊: 占比:30% 031302206 陈振贵: 占比:10% 031302416 黄伟祥: 占比:10%
- java5中原子型操作类的应用
java.util.concurrent.atomic包中提供了对基本数据类型,对数组中的基本数据类型和类中的基本数据类型的操作.详情见API. 下面实例简单介绍AtomicInteger类的使用: ...
- IntellJ IDEA 所有快捷键
登录下面网站. http://www.jetbrains.com/idea/documentation/ 下载Keymap for Windows/Linux 后面的PDF文档.
- onclik的使用.
//好笨啊,这个居然忘记了,在行间家onclick事件要加();,addEventListener只要使用函数名字就好了 <!doctype html> <html> < ...