gpt4 book ai didi

javascript - 对象不支持 Internet Explorer 10 (Windows 8) 中的属性或方法 'transformNode'

转载 作者:数据小太阳 更新时间:2023-10-29 05:58:41 26 4
gpt4 key购买 nike

我遇到了一些 JavaScript 问题,这些问题似乎只发生在 Windows 8 上的 Internet Explorer 10 中(IE 7、8 和 9 都可以正常工作)。我所做的基本工作是从 Web 服务获取 XML 和 XSL,然后在 JavaScript 中转换它们以使用 Sys.Net.XMLDOM 对象呈现在页面上。

XMLDOM = Sys.Net.XMLDOM;

var xsl = // XSL gotten from somewhere else
var xmlString = // XML gotten from somewhere else as a string...
var xml = new XMLDOM(xmlString);

var content = xml.transformNode(xsl);

当我在 IE 10 中使用上面的代码时,我得到:

Object doesn't support property or method 'transformNode'

关于 Internet Explorer 10 为何这样做的任何想法?

编辑

我也试过这个:

xmldoc = new ActiveXObject("Msxml2.DOMDocument"); 
xmldoc.async = false;
xmldoc.load(xml);

xsldoc = new ActiveXObject("Msxml2.DOMDocument");
xsldoc.async = false;
xsldoc.load(xsl);

var content = xmldoc.transformNode(xsldoc);

它适用于所有以前版本的 IE,但在 IE 10 中我得到:

Reference to undeclared namespace prefix: 'atom'.

最佳答案

IE 9 和 grater 不支持,试试这个函数(found online)

function TransformToHtmlText(xmlDoc, xsltDoc) {
if (typeof (XSLTProcessor) != "undefined") { // FF, Safari, Chrome etc
var xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsltDoc);
var xmlFragment = xsltProcessor.transformToFragment(xmlDoc, document);
return GetXmlStringFromXmlDoc(xmlFragment);
}

if (typeof (xmlDoc.transformNode) != "undefined") { // IE6, IE7, IE8
return xmlDoc.transformNode(xsltDoc);
}
else {
try { // IE9 and grater
if (window.ActiveXObject) {
var xslt = new ActiveXObject("Msxml2.XSLTemplate");
var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument");
xslDoc.loadXML(xsltDoc.xml);
xslt.stylesheet = xslDoc;
var xslProc = xslt.createProcessor();
xslProc.input = xmlDoc;
xslProc.transform();
return xslProc.output;
}
}
catch (e) {
alert("The type [XSLTProcessor] and the function [XmlDocument.transformNode] are not supported by this browser, can't transform XML document to HTML string!");
return null;
}

}
}
var content = TransformToHtmlText(xml, xsl);

关于javascript - 对象不支持 Internet Explorer 10 (Windows 8) 中的属性或方法 'transformNode',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com