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 ...
随机推荐
- Unity Networking API文档翻译(一):Networking概述
写在翻译前的话: 我使用过Photon,研究过Ulink这些Unity提供的多人在线游戏服务器组件,这些商业组件虽然很好很强大.但是对于一个独立开发者来说,4000多软妹币还是点多.总想找一 ...
- Java技术路线图
在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...
- [c#基础]集合foreach的必要条件和自定义集合
引言 最近翻看了之前的学习笔记,看到foreach,记得当时老师讲的时候,有点犯浑,不是很明白,这好比,上小学时,你不会乘法口诀,但是随着时间的增长,你不自觉的都会了,也悟出个小道理,有些东西,你当时 ...
- 图解Android - Android GUI 系统 (1) - 概论
Android的GUI系统是Android最重要也最复杂的系统之一.它包括以下部分: 窗口和图形系统 - Window and View Manager System. 显示合成系统 - Surfac ...
- Chrome商店Crx离线安装包下载
第一步:找到Chrome的扩展应用ID 第二步:输入扩展应用ID 第三步:单击 生成 按钮. 第四步:在这里右键另存为即可下载.
- 【HDU 4602】Partition
题意 给你一个数n,把它写成几个正整数相加的形式,即把n拆开成若干段,把所有可能的式子里正整数 k 出现的次数取模是多少. 分析 特判 k>=n 的情况. k<n时:问题相当于n个点排一行 ...
- Cocos2d-X3.0 刨根问底(二)----- 从HelloWorld开始
小鱼习惯直接从代码实例来学习一套成型的引擎库. 运行cpp-empty-test 一个典型的HelloWorld程序翻看代码结构 看到了 main.h与main.cpp文件就从这里开始 #ifndef ...
- MyEclipse护眼模式、字体大小的调整
1.Eclipse改变背景颜色 Windows menu --> Preference General -> Editors -> Text Editors(click), 在底部 ...
- Bzoj2440 完全平方数
Time Limit: 10000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Description 小 X 自幼就很 ...
- POJ1330 Nearest Common Ancestors
Nearest Common Ancestors Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24587 Acce ...