SmartyのテンプレートにJavaScriptを記述する

2009年9月21日 22:00 | Comments | 0 Trackbacks | このエントリーを含むはてなブックマークはてなブックマーク - SmartyのテンプレートにJavaScriptを記述する

テンプレートエンジン『Smarty』のテンプレートファイル(表示用ファイル)上にJavaScriptを記述する際に発生する問題とその解決方法をメモしておきます。

Smartyはテンプレートファイル上の中括弧{}で囲まれた部分をデフォルトでは処理すべき箇所と認識します。
例えば下記のGoogle AnalyticsのトラッキングコードをそのままSmartyのテンプレートファイルに記述してしまうと、{}の部分を処理すべき箇所と判断し、正しく表示されるべきページは真っ白なページになり表示されるでしょう。

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("");
pageTracker._trackPageview();
} catch(err) {}</script>

解決方法ですが、{}を処理すべき箇所と判断させない為に下記のように{literal}で囲めばよいのです。

{literal}
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("");
pageTracker._trackPageview();
} catch(err) {}</script>
{/literal}

{literal}について詳しくはSmartyマニュアル{literal}にてご確認ください。

人気ブログランキングへ ブログランキング【くつろぐ】 ブログランキング・にほんブログ村へ

Trackbacks:0

この記事のトラックバックURL:

dicecreamについて

dice-kt

2009年6月開設。三十路、独身、実家暮らしのdice-ktが自由気ままに普段の出来事や備忘録、お役立ち情報などを書き込んでいます。

My Profile by iddy

アーカイブ

あわせて読みたいブログパーツ
スカウター : dicecream::blog
フィードメーター - dicecream::blog
Powered by Movable Type 4.26

ad

このブログ記事について

このページは、dice-ktが2009年9月21日 22:00に書いたブログ記事です。

ひとつ前のブログ記事は「2009年8月のiPhone 3GSの請求内訳」です。

次のブログ記事は「DigitalColor Meterで画面上の色を調べる」です。

最近の記事はトップページで見られます。過去に書かれたものは過去記事一覧で見られます。

スポンサード リンク