CF2016からcfoutputタグについて
新たに属性encodeforが追加されたようです。
これを使用することでcfoutputタグに囲まれている格式に対して
以前紹介したencodeFor関数を適応できます。
これでencodeFor関数を書かなくて済むみたいです。
属性encodeforに対して有効な設定値は下記の通りです。
属性encodefor設定値 | ||||
---|---|---|---|---|
html | htmlattribute | url | javascript | css |
xml | xmlattribute | xpath | ldap | dn |
あと「html」を設定した場合のサンプルコードです。
<cfset testFlg = true> <cfset testString = '<b style="color:red;">あ有A$##@!&</b>'> <!--- 各式に対してencodeFor*関数が適用される ---> <cfoutput encodefor="html"> <!--- 三項演算子使用時は問題なし---> <!--- 出力結果「<b style="color:red;">あ有A$##@!&</b>」 ---> #((testFlg IS true) ? testString : "テスト")# <!--- iif関数使用時にはエラーとなる ---> #IIf(testFlg IS true, DE(testString), "テスト")# </cfoutput>
今の所はCF2016を使った開発はやっていませんが、
いずれ触る時には使っていきたい…(:3_ヽ)_