パンプキンスパイスラテ

IT系のことが多めの日記帳です

Smartyのテンプレート内でjavascriptを使う

Smartyでページを構築してたら、どうしてもjavascriptの部分でエラーになってしまう。しかもSmartyのエラー。悩んで調べてみたら、どうやらSmarty内でjavascriptを使うには、

{literal}
<script type="text/javascript">
//<![CDATA[
function hoge(){
  ごにょごにょ
}
//]]>
</script>
{/literal}

のように、{literal}〜{/literal}で囲まなければならないらしい。

Smartyは単に文字列置換しているのかと思っていたら、JavaScriptはパースでエラーになるのね。

BooLog 1.0|SmartyとJavaScript

でも、

<script type="text/javascript">
//<![CDATA[
var hoge = "ほげ";
//]]>
</script>

これは大丈夫だった。つまりSmarty内で「{〜}」を使うとダメなのかな。