【问题标题】:Passing a Smarty variable into Javascript link "src" attribute将 Smarty 变量传递给 Javascript 链接“src”属性
【发布时间】:2010-03-26 17:59:25
【问题描述】:

我已经分配了一个 Smarty 变量:

{assign var="siteurl" value="http://website.com"}

我可以在我的 header.html 文件中成功使用它来调用 CSS 链接:

<link rel="stylesheet" type="text/css" href="{$siteurl}/style.css" />

展示

<link rel="stylesheet" type="text/css" href="http://website.com/style.css" />

但是,当我对 Javascript 源代码执行相同操作时,它实际上会打印出“{$siteurl}”:

<script type="text/javascript" src="{$siteurl}/scripts.js"></script>

展示

<script type="text/javascript" src="{$siteurl}/scripts.js"></script>

为什么这个 Smarty 变量没有按预期显示?

【问题讨论】:

  • 奇怪。它不应该独自完成这一切。这是什么版本的Smarty?你在某处使用{literal}{/literal} 吗?
  • 你知道吗,我正在设计一个会员系统。所以,我没有从头开始构建系统。我敢打赌他们已经在文件结构的某个地方放置了 {literal} 标签来包装内容。现在我知道上面的代码应该可以工作了,我将开始检查文件结构以进行调试。谢谢。是否有他们可以调用的可能的 php 函数(我应该注意)来启用这个 {literal} 功能?

标签: javascript smarty


【解决方案1】:

问题解决了! 正如上面的 cmets 中提到的,我正在开发一个 aMember 系统。我不确定他们是否在初始文件的末尾打开 smarty {literal} 标签,然后在最后关闭它们,或者什么。但修复正在替换

{$siteurl}

{/literal}{$siteurl}{literal}

我尝试将反向 {literal} 标签放在文档的开头和结尾,但它引发了错误。我必须为每个 javascript src 实例手动放置上面的代码。

非常感谢大家的帮助!!

【讨论】:

  • 我在这里也有类似的情况,但有点复杂,看@我的代码。 {literal}&lt;iframe src="http://www.facebook.com/plugins/registration.php?client_id=2343434234&amp;fb_on‌ ​ ly=true&amp;redirect_uri=http://localhots/POC/manage_users.php?reg_type={/literal}{$regtype}{literal}&amp;act_action=save_profiledata&amp;fields=[{'name':'name'}, {'name':'email'}, {'name':'gender'}, {'name':'location'}, {'name':'birthday'}]" scrolling="auto" frameborder="no" style="border:none" allowTransparency="true" width="100%" height="360"&gt;&lt;/iframe&gt;{/literal} 在这种情况下,它不会返回完整的 url,但会检索到值。有什么帮助吗?
【解决方案2】:

脚本标签是否包含在 Smarty {literal}{/literal} 块中?这将阻止{$siteurl} 标记的呈现。

【讨论】:

  • 没有。实际上,我在故障排除时尝试用 {literal} 包装它们,但意识到它与我想做的相反。
  • 你知道吗,我正在设计一个会员系统。所以,我没有从头开始构建系统。我敢打赌他们已经在文件结构的某个地方放置了 {literal} 标签来包装内容。现在我知道上面的代码应该可以工作了,我将开始检查文件结构以进行调试。谢谢。是否有他们可以调用的可能的 php 函数(我应该注意)来启用这个 {literal} 功能?
  • 我尝试将 {/literal} 放在脚本的开头,然后将 {literal} 放在脚本的末尾。如果 aMember 系统在初始文件之一中打开 {literal} 标记,并在最终文件之一中关闭它(无论出于何种原因)。但是它引起了一个错误,所以也在那里骰子。嗯……
猜你喜欢
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 2014-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多