0

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

获取xml.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>

获取xml.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 中作为上述注释编写。

感谢任何帮助,谢谢!

4

1 回答 1

2

根据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; }

Reference contentDocument to parse the document:

var myxml = document.getElementById("myxml").contentDocument;
var xmle=myxml.getElementsByTagName("publish").item(0);  
alert(xmle);
于 2012-12-14T01:38:41.863 回答