javascript读取xml的解法,兼容多浏览器
2009-07-17 14:37
495 查看
try{ xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e){ try{ xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try{ xmlDoc.async=false; xmlDoc.load("example.xml"); document.write("xmlDoc is loaded"); } catch(e){ alert(e.message) }
在网上能找到的用JS读取XML文件的脚本大多都是类似上面这个样子的。可气的是代码里一般都会有注释说可以兼容firefox、opera、safari、IE,其实经过我测试,这种代码根本不支持safari,同内核的chrome当然也不支持。
在safari里会报错:
value undefined (result of expression xmlDoc.load) is not object。在chrome里则报错:
Uncaught TypeError: Object #<a Document> has no method 'load'。
很奇怪在网上搜索报错内容几乎没有找到相关条目,即便是有那么一两条,也只是提出了问题没有给出解决办法。其实用XMLHttpRequest读取XML来避免使用
xmlDoc.load()方法就可以解决了。我不知道这是不是唯一的解决办法,总之我根据这个写了一段——这回在IE、opera、firexfox、safari/chrome里用JS都已经可以正常读取XML数据了——演示地址在这里。用到的JS脚本可以查看源代码来查看。
另外,我尝试着把读取到的数据用XSLT文件来格式化,然后显示出来。但是,firefox浏览器又遇到了我之前提到过的把
<![CDATA[ ]]>标签内容解释为HTML的障碍。而且,这回用上次提到的JS解决办法貌似不行,只能用
<xsl:copy-of select="node()"/>来弥补。
转贴网络博客
用于我的案子的code:jsreadxml
相关文章推荐
- 多浏览器兼容的Javascript读取XML节点方法
- javascript读取XML(兼容所有浏览器)
- avascript读取XML(兼容所有浏览器)
- js读取本地xml文件 兼容IE Firfox Chrome 等浏览器
- js + php 读取、播放视频流 兼容firefox,chrome,ie,mac的safari,ios的safari,ios的微信浏览器(curl读取文件流篇) 分类: php javascript 浏览器兼容 safari 视频流 jwplayer6
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- [原]JavaScript 读取XML 通用类 兼容IE与众浏览器
- JavaScript 【跨浏览器处理XML,做个兼容】
- javascript读取xml,兼容火狐和ie各个版本
- 使用javascript中读取Xml文件做成的一个二级联动菜单
- javascript有声调的汉字注音字典(兼容各浏览器)
- 编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
- JS解析XML文档中的数据(兼容各个浏览器)
- 跨浏览器读取XML
- javascript解析xml文件。兼容IE、firefox、Chrome
- Javascript中常遇到的浏览器兼容问题和解决方法
- 在asp.net中如何用javascript读取本地Xml中的数据到网页中的文本框?