怎样才能用js生成xmldom对象,并且在firefox中也实现xml数据岛?
通常XML文件都是从外部载入的,但有时候我们想直接用Ja vaScript在内存中生成一个XML对象,该怎么办?下面的代码给出了一种实现方案——只需要传入字符串形式的XML数据,就能得到一个XML对象,并且在Firefox下也能正常工作。 这个方法其实还可以在Firefox中模拟出XML数据岛的效果
通常XML文件都是从外部载入的,但有时候我们想直接用Ja vaScript在内存中生成一个XML对象,该怎么办?下面的代码给出了一种实现方案——只需要传入字符串形式的XML数据,就能得到一个XML对象,并且在Firefox下也能正常工作。
这个方法其实还可以在Firefox中模拟出XML数据岛的效果:用标签装载XML字符串,然后调用createXml函数将其转换成可操作的XML对象。另外,Firefox本身不支持节点的.xml属性,所以需要手动添加这个属性,让它在行为上和IE保持一致。
test
这段代码的核心思路其实很简单:先判断浏览器类型,如果是IE,就用ActiveXObject创建Microsoft.XMLDOM对象并加载字符串;如果是其他浏览器(包括Firefox),则使用DOMParser的parseFromString方法。最后通过__defineGetter__给XMLDocument原型添加一个xml属性,这样就能像IE一样直接通过.xml获取序列化后的XML字符串了。
另外,document.all这个判断条件在IE下为真,在其他浏览器中为假,因此可以很好地完成浏览器分支逻辑。需要注意的是,__defineGetter__在现代浏览器中已被标记为废弃,但为了兼容老版本Firefox,这种写法仍然可用。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。















