【发布时间】:2015-02-25 11:02:08
【问题描述】:
我需要将 Smarty 语法的变量内容插入到 javascript 中,如下所示。该脚本正在检查页面是否从发送给客户的电子邮件中的验证链接打开。
{literal}
<script>
if ((document.URL).indexOf("validation") > -1) {
$('.loginForm').append(
"<p class='middleWarningTextP loginMessage'>{/literal}{$VALIDATION_NOTICE->getMessage()}{literal}</p>");
}
</script>
{/literal}
问题是,这只有在 javascript 条件为真时才有效,否则页面加载错误:<header> 和 </header> 标记之间什么都没有!因此未加载 css 样式。没看懂,有办法修复吗?
【问题讨论】:
-
Smarty 2 还是 Smarty 3?
-
{literal}标签没有任何问题(正如一些答案所暗示的那样)。它们使用得当。无需删除它们。我会escape for Javascript$VALIDATION_NOTICE->getMessage()返回的值(除非它没有转义,这不是正确的行为,顺便说一句)。除此之外,请检查(或显示)您的 PHP 代码,因为这就是问题所在。 -
我尝试了带有 {$VALIDATION_NOTICE->getMessage()|escape:'javascript'} 的原始代码,但出现了同样的错误。
标签: javascript syntax smarty