グローバル・モディファイア
ダブルクオテーション「”」を置き換える
2011.10.03

MovableTypeにて、entrytitleやentrybody内の文字列にダブルクオテーション「"」を使うと、javascriptを使用した際にエラーになってしまいます。

以前、この問題で悩んだ際に解決方法を教えてもらったような、検索したような気がしますが、急に対応が必要でなかったこともあり放っておいてしまいました。今、対応が必要となり探ります。


MT タグとあわせて利用する「グローバル・モディファイア」というものがあるようです。アトリビュートですね。


まずは、replaceというものがあるようです。

たとえば、「&」を「&」に置き換えるには
<$mt:entrytitle replace="&","&"$>
となります。


便利そうですが、今回の「"」の置き換えは、これで解決できそうにありません。

ここで、違うグローバルモディファイアを発見しました。
Movable Typeの『グローバル・モディファイアリファレンス』(encode_htmlとかencode_js)

-----
●encode_js
javascriptで「"」を入れるとエラーになるので変換してくれます。
「"」を「¥"」という形に変換してくれます。

『<$mt:EntryTitle encode_js="1" $>』

こんな感じで使用します。
-----

1 に設定すると、MT タグの値が javascript の文字列の値として使えるようにエンコードするようです。解決方法はまさにこれです。


この他にも

●encode_html
1 に設定すると、MT タグの値が 「<」を「&lt;」、「&」を「&nbsp;」などの形にHTMLエンコード

『<$mt:EntryTitle encode_html="1" $>』

こんなのが、かなり使えそう。助かりました。

| コメント(0)