是否有任何方法可以为 Handlebars 转义设置某种设置,以便省略特定标签? 或者是否有任何一组助手可以做到这一点?
例如如果我允许模板中的链接,它将执行以下操作。
InputSting = "some <\a href='http://link'>out</a> <\script>alert('THERE')</script>"
模板
{{InputString}}
编译为如下内容:
some out <\script>alert('THERE')</script>
忽略反斜杠,用于保留标签。
最佳答案
我尝试了这个 fiddle :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);
});
关于javascript - Handlebarsjs "smart"转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36074124/