有没有办法为把手逃脱设置某种设置,所以它省略了特定的标签? 或者,如果有任何一组助手可以做到这一点?
e.g。如果我允许模板中的链接,它将执行以下操作。
InputSting =“some< \ a href ='http://link'> out< / a>< \ script> alert('THERE')< / script>”
模板
{{InputString}}
编译为:
一些out< \ script>提醒('THERE')< / script>
忽略反斜杠,用于保存标签。
答案 0 :(得分:1)
我尝试了这个小提琴:https://jsfiddle.net/ChristopheThiry/m4fgsxof/
首先在InputString中你需要以不同的方式进行转义,否则javascript会检测到你的脚本标记并将标记关闭在错误的位置:
\<script>alert('THERE')\<\/script>
其次,您可以使用帮助器在输入字符串
上投射Handlebars.SafeString在你的模板中:
{{#link InputString}}
{{/link}}
帮助声明:
Handlebars.registerHelper('link', function(text) {
return new Handlebars.SafeString(text);
});