尝试了一堆不同的方法。下面(不起作用)基本上就是我想要做的。使用变量“defineClick”定义“onclick”代码,并将其动态插入div / onclick处理程序。 $ block变量定义在文件中。感谢
<xsl:choose>
<xsl:when test="txtBlockTarget='_blank'">
<xsl:variable name="defineClick">window.open('{$block}','_blank');</xsl:variable>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="defineClick">location.href='{$block}';</xsl:variable>
</xsl:otherwise>
</xsl:choose>
<div onclick="{$defineClick}" style="cursor: pointer;">
.....more xsl.....
</div>
答案 0 :(得分:0)
add_filter('pmpro_register_redirect', '__return_false');
中定义的变量的范围限定为其父级,并且在其外部不可用。
尝试将操作顺序颠倒为:
xsl:when
注意:当您使用变量编写<xsl:variable name="defineClick">
<xsl:choose>
<xsl:when test="txtBlockTarget='_blank'">window.open('{$block}','_blank');</xsl:when>
<xsl:otherwise>location.href='{$block}';</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<div onclick="{$defineClick}" style="cursor: pointer;">
....more xsl.....
</div>
时,我不确定您的意图;就目前而言,它只不过是一个毫无意义的字符串。但这将是一个单独问题的主题。
答案 1 :(得分:0)
谢谢迈克尔!有时答案比看起来简单得多(而且到达那里的痛苦)。以下代码有效。
<xsl:variable name="defineClick">
<xsl:choose>
<xsl:when test="txtBlockTarget='_blank'">window.open('<xsl:value-of select="$block" />');</xsl:when>
<xsl:otherwise>location.href='<xsl:value-of select="$block" />'</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<div onclick="{$defineClick}" style="cursor: pointer;">
......