JavaScript加载XML文件浏览器兼容性问题解决办法

  • 格式:docx
  • 大小:232.00 KB
  • 文档页数:2

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在自动化测试平台开发过程中,需要将测试用例文件夹目录的树状结构生成xml文件,并将用例路径保存的xml属性中,便于选中用例后寻找执行路径。

因此需要在html中解析xml文件。解析的方法使用的是js来解析XML文件,并将解析后的XML Dom对象返回。由于各种浏览器支持Dom对象的方法不同,导致加载xml文件时不同浏览器会弹出各种错误提示。

例如:

1.ie的方法错误可能会报:对象不支持此属性或方法

2.firefox的方法错误可能会报:ActiveXObject is not defined

3.chrome的方法错误可能会报:object # has no method 'load'

本文主要解决在解析XML文件前个各浏览器对XML文件的装载兼容性问题。

在平台中,开始由于少写了Chrome部分的try catch代码,导致在chrome下报错,无法显示配置测试任务页的用例列表,问题在于chrome浏览器不支持load方法(xmlDoc.load(xmlUrl)处抛出异常),需要添加如下代码:

var chromeXml = new XMLHttpRequest();

chromeXml.open("GET", xmlUrl, false);

chromeXml.send(null);

xmlDoc = chromeXml.responseXML.documentElement;

下面为修改好后的完整js代码,仅供参考

function loadXMLDoc(xmlUrl)

{

try //Internet Explorer

{

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

}

catch(e)

{

try //Firefox, Mozilla, Opera, etc.

{

xmlDoc=document.implementation.createDocument("","",null);

}

catch(e) {alert(e.message)}

}

try

{

xmlDoc.async=false;

xmlDoc.load(xmlUrl);

}

catch(e) {

try //Google Chrome

{

var chromeXml = new XMLHttpRequest();

chromeXml.open("GET", xmlUrl, false);

chromeXml.send(null);

xmlDoc = chromeXml.responseXML.documentElement;

//alert(xmlDoc.childNodes[0].nodeName);

//return xmlDoc;

}

catch(e)

{

alert(e.message)

}

}

return xmlDoc;

}

修改后列表显示正常:

欢迎大家登录http://10.22.198.107 (用户名密码:test/test)查看“配置测试任务”页解析xml生成的表格