使用xslt我想创建一个属性:
<span class="tooltip">
<xsl:attribute name="onmouseover">
<xsl:text>javascript:function(</xsl:text>
<span class="label">Aggiunta</span>
<xsl:apply-tempaltes/>
<xsl:text>)</xsl:text>
</xsl:attribute>
问题是只有纯文本被放在属性中,比如
<span class="tooltip" onmouseover="javascript:function(Aggiunta ...)">
没有span标签或可能来自apply-templates的标签。
那么如何将html代码放入属性?
答案 0 :(得分:1)
如果您正在尝试生成正确的xhtml,那么您根本不应该这样做,但要使您的属性值引用更简单的不包含这些字符的javascript。
定义格式良好的XML的规则明确禁止包含'&lt;'的属性值字符。请参阅W3C Recommendation。
答案 1 :(得分:0)
您应该将事件绑定到不直接作为属性编写的HTML元素。 此示例基于jQuery。
$( ".tooltip" ).bind( "mouseover", function() {
// some code goes here
});
和HTML看起来应该类似:
<span class="tooltip">Some text</span>
答案 2 :(得分:-1)
最好的选择是使用外部JavaScript文件。立即修复将包括使用CDATA标签。
<xsl:text><![CDATA[myfunction("<span class='label'>Aggiunta</span>]]></xsl:text>
请注意,内联JavaScript仅在特定情况下接受变量。
XML规范对Character Data所说的内容(例如属性值)
&符号(&amp;)和左尖括号(&lt;)绝不能以字面形式出现,除非用作标记分隔符,或用于注释,处理指令或CDATA部分。如果在其他地方需要它们,则必须分别使用数字字符引用或字符串“&amp; amp;”和“&amp; lt;”进行转义。可以使用字符串“&amp; gt;”来表示右尖括号(&gt;),并且为了兼容性,必须使用“&amp; gt;”或字符串引用(当它出现在字符串“]中时)进行转义。 &gt;“在内容中,当该字符串未标记CDATA部分的结尾时。