javascript - IE10 javascript访问xml元素问题

标签 javascript html xml internet-explorer-10

我有 3 个文件(htm、xml、js)可以在 IE8 中正常工作,但在 IE10 中 javascript 无法获取 xml 元素:

getxml.htm

<html>
    <head><title>getxml.htm</title></head>

    <xml id="myxml" src="myxml.xml"></xml>
    <script src="getxml.js" language="javascript" type="text/javascript"></script>
</html>

myxml.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<publish>
</publish>

getxml.js

get_xml_content();
function get_xml_content() {
    alert("get_xml_content");
    alert(myxml);       // ie8: [object], ie10: [object HTMLUnknownElement]
    var xmle=myxml.getElementsByTagName("publish").item(0);  
    alert(xmle);        // ie8: [object], ie10: null
}

来自 IE8 和 IE10 的警报消息被写为 getxml.js 中的注释。

感谢任何帮助,谢谢!

最佳答案

根据a blog post at the IEBlog ,IE10在标准模式下运行时不支持XML数据岛。这使得 IE10 与其他浏览器解析 HTML 的方式保持一致。

要使其在 IE10 中工作,您需要以旧模式加载页面。您可以通过包含 X-UA-Compatible 来做到这一点元标记:

<meta http-equiv="X-UA-Compatible" content="IE=9" />

一种更跨浏览器的方法是将 XML 与 <iframe> 链接起来。相反:

<iframe id="myxml" src="myxml.xml" />

当然,您需要使用一些 CSS 来隐藏它:

iframe { display: none; }

引用contentDocument解析文档:

var myxml = document.getElementById("myxml").contentDocument;
var xmle=myxml.getElementsByTagName("publish").item(0);  
alert(xmle);

关于javascript - IE10 javascript访问xml元素问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871092/

相关文章:

javascript - 值改变时输出文本颜色改变

javascript - 抛出字符串而不是错误

javascript - Google Apps 脚本重新声明 Const 错误

Javascript,for 循环将不起作用

javascript - 在 javascript 代码中添加一两个 PHP 变量

javascript - 在 HTML 5 Canvas 上绘制静态背景

javascript - JS将字符串中的每个#word替换为<div>#word</div>

php - 如何将日期时间转换为unix命令日期

c++ - Tinyxml2 根集属性

android - Android 库中的属性名称是否需要前缀?