商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 怎样才能用js生成xmldom对象,并且在firefox中也实现xml数据岛?

怎样才能用js生成xmldom对象,并且在firefox中也实现xml数据岛?

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

通常XML文件都是从外部载入的,但有时候我们想直接用Ja vaScript在内存中生成一个XML对象,该怎么办?下面的代码给出了一种实现方案——只需要传入字符串形式的XML数据,就能得到一个XML对象,并且在Firefox下也能正常工作。

这个方法其实还可以在Firefox中模拟出XML数据岛的效果:用

</code>标签装载XML字符串,然后调用<code>createXml</code>函数将其转换成可操作的XML对象。另外,Firefox本身不支持节点的<code>.xml</code>属性,所以需要手动添加这个属性,让它在行为上和IE保持一致。</p> <pre class="brush:php;toolbar:false"><code><body> <xmp id=x1> <root> <node>test</node> </root>

这段代码的核心思路其实很简单:先判断浏览器类型,如果是IE,就用ActiveXObject创建Microsoft.XMLDOM对象并加载字符串;如果是其他浏览器(包括Firefox),则使用DOMParserparseFromString方法。最后通过__defineGetter__XMLDocument原型添加一个xml属性,这样就能像IE一样直接通过.xml获取序列化后的XML字符串了。

另外,document.all这个判断条件在IE下为真,在其他浏览器中为假,因此可以很好地完成浏览器分支逻辑。需要注意的是,__defineGetter__在现代浏览器中已被标记为废弃,但为了兼容老版本Firefox,这种写法仍然可用。

本文转载于:https://www.jb51.net/article/5437.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注