所以,我在IE11中运行以下代码:
var processor = new ActiveXObject("Msxml2.XSLTemplate");
var xslt = new ActiveXObject("MSXML2.FreeThreadedDOMDocument");
xslt.load(xsl_str_loc);
processor.stylesheet = xslt;
在第四行,此操作失败,异常为Error: the data necessary to complete this operation is not yet available
。
我加载的xml是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8" />
<xsl:template match="/">
<D>
<xsl:for-each select="/D/R">
<xsl:sort select="C3" data-type="number" order="ascending" />
<xsl:sort select="C5" data-type="number" order="ascending" />
<xsl:sort select="C1" data-type="number" order="ascending" />
<xsl:copy-of select="." />
</xsl:for-each>
</D>
</xsl:template>
</xsl:stylesheet>
我已经检查了xslt的readyState,它是4.有没有一种简单的方法可以追踪丢失的资源并等到它被加载?当我将xslt分配给样式表时,为什么会失败?
答案 0 :(得分:1)
在调用xslt.async = false;
方法之前设置load
。