IE9 での XML 解析後に問題に直面しています。XML を解析した変数にアラートを出すと、IE9 を除く他のすべてのブラウザーで [Object] というテキストが表示されますが、IE9 では [Object Document] と表示されます。このため、変数値は入力パラメーターに割り当てられません。コード:
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(txt);
}
xslProc = xslt.createProcessor();
xslProc.input = xmlDoc;
IE9 では、毎回 IF ブロックが実行され、xmlDoc が [オブジェクト ドキュメント] [IE9 のみ] として警告され、入力パラメーター (最後の行) で xmlDoc オブジェクトを割り当てたときにコードが停止したことがわかります。IE7 を含む他のすべてのブラウザーでは、 IE8は問題なく動いています。どんな助けでも大歓迎です。前もって感謝します。
編集: XSLT 形式
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:param name="selectedSKU"></xsl:param>
<xsl:param name="pageName">skuset</xsl:param>
<xsl:param name="selectedSWATCH"></xsl:param>
<xsl:param name="colFlag">0</xsl:param>
<xsl:param name="xslStoreId">10001</xsl:param>
<xsl:param name="xslLangId">-1</xsl:param>
<xsl:param name="xslCatalogId">10051</xsl:param>
<xsl:param name="exitURL"></xsl:param>
<xsl:param name="iskiosk">0</xsl:param>
<xsl:param name="AddToCart"></xsl:param>
<xsl:param name="Qty"></xsl:param>
<xsl:template match="/">
<xsl:apply-templates select="//product[@id=$selectedSKU]" />
</xsl:template>
<xsl:variable name="label_stars">
<xsl:value-of select="productcatalog/labels/label[@key='common.stars']" />
</xsl:variable>
<xsl:variable name="label_reviews">
<xsl:value-of select="productcatalog/labels/label[@key='common.reviews']" />
</xsl:variable>
</xsl:stylesheet>
XSLT ファイルは非常に長いので、1 つのブロックを添付しました。