我正在尝试找到我们目前正在开发的Web应用程序问题的修复程序。 我们在解决方案中使用了许多XML数据岛,这些数据岛目前已被MS淘汰(参见link1)。
我尝试了以下方法:
1)使用DOMParser,但不幸的是IE 11并不支持,到目前为止所有的解决方法都指向了当前的方法:new ActiveXObject("Microsoft.XMLDOM");
不再支持
2)使用hack在页面中使用x-ua-compatible
将此页面设为旧文档(请参阅link2)
3)找到一个可以帮助我处理这个问题的库/ javascript / jquery,找不到比上面的解决方案更多的东西来应对这种情况。
现在我的问题是:
答案 0 :(得分:0)
迄今为止发现的最佳方法是关于SO的答案:
https://stackoverflow.com/a/21986537/79379
https://developer.mozilla.org/en/docs/Using_XML_Data_Islands_in_Mozilla
<!DOCTYPE html>
<html>
<head>
<title>XML Data Block Demo</title>
<script id="purchase-order" type="application/xml">
<purchaseOrder xmlns="http://example.mozilla.org/PurchaseOrderML">
<lineItem>
<name>Line Item 1</name>
<price>1.25</price>
</lineItem>
<lineItem>
<name>Line Item 2</name>
<price>2.48</price>
</lineItem>
</purchaseOrder>
</script>
<script>
function runDemo() {
var orderSource = document.getElementById("purchase-order").textContent;
var parser = new DOMParser();
var doc = parser.parseFromString(orderSource, "application/xml");
var lineItems = doc.getElementsByTagNameNS("http://example.mozilla.org/PurchaseOrderML", "lineItem");
var firstPrice = lineItems[0].getElementsByTagNameNS("http://example.mozilla.org/PurchaseOrderML", "price")[0].textContent;
document.body.textContent = "The purchase order contains " + lineItems.length + " line items. The price of the first line item is " + firstPrice + ".";
}
</script>
</head>
<body onload="runDemo()";>
Demo did not run
</body>
</html>