XHTML XSLT包含HTML标记的Javascript

时间:2011-04-21 15:21:59

标签: javascript

我有一个XSLT文件,它呈现了XHTML页面的一部分。当它被添加时,我得到“不允许的字符数据”错误。如果我将它包装在CDATA中,那么我会收到更多错误。有人可以帮忙吗?

<script language="javascript">

YAHOO.util.Event.onDOMReady(function (ev) {

//...

    var myPaginatorConfig = { 
            containers   : "pagination",
                    rowsPerPage  : 1,
                    template     : "<table><tr><td>{PreviousPageLink}</td>"   +"<td><xsl:value-of select="jsfunc:getSliderDiv()" disable-output-escaping="yes"/></td>"+
                                   "<td>{NextPageLink}</td></tr></table><xsl:value-of select="jsfunc:getClearDiv()" disable-output-escaping="yes"/>",
                    totalRecords : Math.ceil(numItems / numVisible),

            previousPageLinkLabel : "Earlier Events",
            nextPageLinkLabel : "Later Events",
            previousPageLinkClass : "nav_button",
            nextPageLinkClass : "nav_button nav_button_right"
    }
//...

});

</script>

2 个答案:

答案 0 :(得分:1)

"<table><tr><td>{PreviousPageLink}</td>"   +"<td><xsl:value-of select="jsfunc:getSliderDiv()" disable-output-escaping="yes"/></td>"+
                                   "<td>{NextPageLink}</td></tr></table><xsl:value-of select="jsfunc:getClearDiv()" disable-output-escaping="yes"/>"

你这里没有逃避的事情。除非“是”是变量,否则您应该使用单引号将它们括起来,或使用反斜杠来转义双引号。

"<table><tr><td>{PreviousPageLink}</td>"   +"<td><xsl:value-of select="jsfunc:getSliderDiv()" disable-output-escaping=\"yes\"/></td>"+
                                   "<td>{NextPageLink}</td></tr></table><xsl:value-of select="jsfunc:getClearDiv()" disable-output-escaping=\"yes\"/>"

答案 1 :(得分:1)

您是否尝试过以下操作:

<xsl:text disable-output-escaping="yes">
      <![CDATA[ <script language="javascript"> your code</script> ]]>
</xsl:text>

disable-output-escaping =“yes”将保持您的标签不变 这为我解决了很多问题