[英]How to put tags inside an html attribute?
我想使用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 ...)">
沒有跨度標簽或可能來自應用模板的標簽。
那么如何將html代碼放入屬性中?
如果您嘗試產生正確的xhtml,則根本不應該這樣做,而應使屬性值引用不包含這些字符的更簡單的javascript。
定義格式正確的XML的規則明確禁止屬性值包含'<'字符。 請參閱W3C建議書 。
您應該將事件綁定到不直接寫為屬性的HTML元素。 該示例基於jQuery。
$( ".tooltip" ).bind( "mouseover", function() {
// some code goes here
});
和HTML應該看起來像這樣:
<span class="tooltip">Some text</span>
最好的選擇是使用外部JavaScript文件。 立即修復將包括使用CDATA標記。
<xsl:text><![CDATA[myfunction("<span class='label'>Aggiunta</span>]]></xsl:text>
請注意,內聯JavaScript僅在某些情況下接受變量。
XML規范對字符數據的描述 (例如屬性值)
除用於標記分隔符時,或在注釋,處理指令或CDATA部分中,“&”字符(&)和左尖括號(<)均不得以其文字形式出現。 如果在其他地方需要它們,則必須分別使用數字字符引用或字符串“&amp;”和“&lt;”對它們進行轉義。 右尖括號(>)可以用字符串“&gt;”表示,並且為了兼容性,必須使用“&gt;”或字符引用在內容中出現在字符串“]]>”中時進行轉義,當該字符串未標記CDATA節的結尾時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.