mailru / fest

javascript templates
Other
128 stars 28 forks source link

fest:value output="json" #68

Closed eprev closed 11 years ago

eprev commented 11 years ago
<fest:template>
    <fest:script><![CDATA[var s = "</script>"]]></fest:script>
    <script>var json = <fest:value output="json">s</fest:value></script>
</fest:template>
<script>var json="\u003C\/script\u003E"</script>

То есть это JSON.stringify() + замена < и > на \u003C и \u003E

RubaXa commented 11 years ago

Что-то типа этого:

<fest:var name="s" value="</script>" mode="safeJS" />

или

<fest:var name="s" mode="safeJS"><![CDATA[</script>]]></fest>

<fest:script/> — это мега low-level и от него вообще нужно постепенно отказываться, выкидывая сначала варнинг, а потом и exception, если явно не будет указано, что для этого шаблона разрешены такие вставки (как jshint ругается на eval).