JavaScript加载XML文件浏览器兼容性问题解决办法
- 格式:docx
- 大小:232.00 KB
- 文档页数:2
在自动化测试平台开发过程中,需要将测试用例文件夹目录的树状结构生成xml文件,并将用例路径保存的xml属性中,便于选中用例后寻找执行路径。
因此需要在html中解析xml文件。解析的方法使用的是js来解析XML文件,并将解析后的XML Dom对象返回。由于各种浏览器支持Dom对象的方法不同,导致加载xml文件时不同浏览器会弹出各种错误提示。
例如:
1.ie的方法错误可能会报:对象不支持此属性或方法
2.firefox的方法错误可能会报:ActiveXObject is not defined
3.chrome的方法错误可能会报:object #
本文主要解决在解析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生成的表格