Smarty-可以't将变量内容插入javascript
Smarty - can't insert variable content into javascript
我需要将具有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条件为true时,这才有效,否则页面加载错误:在<header>
和</header>
标记之间什么都不是!因此不会加载css样式。我不明白,有办法修理它吗?
您应该删除{literal}标记。Smarty不执行这些标记中的语句更多信息。但是,如果在javascript中使用大括号,则需要在多行中编写语句:
var test = {
value: 'test'
}
如果您使用的是Smarty 3
<script>
if ((document.URL).indexOf("validation") > -1) {
$('.loginForm').append(
"<p class='middleWarningTextP loginMessage'>{$VALIDATION_NOTICE->getMessage()}{literal}</p>");
}
</script>
也就是说,只需删除{literal}标签
如果你用的是Smarty 2,我认为它有点像
<script>
if ((document.URL).indexOf("validation") > -1) {ldelim}
$('.loginForm').append(
"<p class='middleWarningTextP loginMessage'>{$VALIDATION_NOTICE->getMessage()}</p>");
{rdelim}
</script>
问题不在于{literals}标记或语法。问题是在某些情况下没有设置$VALIDATION_NOTICE->getMessage()变量。因此,我添加了这个条件:
{if !is_array($VALIDATION_NOTICE) and $VALIDATION_NOTICE}{$VALIDATION_NOTICE->getMessage()}{/if}
现在它工作正常。
相关文章:
- JavaScript:将变量插入数组
- 如何使用DOMDocument将PHP变量插入javascript部分
- 将Javascript变量插入到Html.Partial ViewDataDictionary ASP.NET MVC中
- 将整数变量插入数据库
- 如何将PHP中的变量插入到具有直接变量的Java脚本变量中
- 将JS中的一个变量插入Django表单输入字段
- 将javascript变量插入到javascript函数中
- 将javascript变量插入json字符串
- 如何使用 javascript 将输入到文本框中的变量插入到文本字符串中
- 将变量插入 SQL 表中
- 如何将 JavaScript 变量插入到 PHP 代码中
- 将 JavaScript 变量插入 PHP
- 如何将 JavaScript 变量插入 razor
- 如何使用 JavaScript 将变量插入 SRC(源代码)
- 将 Javascript 变量插入到 flashVars 字符串中
- 将变量插入 JavaScript 函数中的 DIV 中
- 如何将变量插入HTML
- 如何将函数中的返回变量插入HTML表单
- 如何在提交GET表单后将变量插入到生成的url参数字符串中
- JavaScript将变量插入括号中