我有 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/