允许在DomPurify中使用HTML注释



我想使用DOMPurify来清除一些HTML内容,但我想保留HTML注释。这可能吗?

您可以在本例中看到它的作用——如果您输入带有注释的标记,则注释将被删除。

DOMPurify看起来是非常可配置的,但文档没有提到用什么术语来指定HTML注释作为允许的标记。

我也有同样的问题,有一个更好的解决方案,那就是不要在标记中乱用regex(剧透警告:不要!(:

var dirty = "<!-- I am ready now, click one of the buttons! -->ac <script>in script</script> <b>hello</b>";
var config = { ADD_TAGS: ['#comment'], FORCE_BODY: true };
var clean = DOMPurify.sanitize(dirty, config);
console.log("clean => ",clean);
// >>> clean => <!-- I am ready now, click one of the buttons! -->ac  <b>hello</b>

DOMPurify没有任何挂钩或配置来允许在html字符串中添加注释。您可以这样做,只需将<!---->替换为任何自定义属性,并提供允许ADD_TAGS: ['comment']使用的配置即可。

var dirty = "<!-- I am ready now, click one of the buttons! -->ac <script>in script</script> <b>hello</b>";
dirty = dirty.replace(/(<!--)/g,'<comment>').replace(/(-->)/g,'</comment>');
var config = { ALLOWED_TAGS: ['b'],ADD_TAGS: ['comment']};
var clean = DOMPurify.sanitize(dirty, config);
clean = clean.replace(/(<comment>)/g,'<!--').replace(/(</comment>)/g,'-->');
console.log("clean => ",clean);

jsFiddle演示-http://jsfiddle.net/4j6c28ve/

相关内容

  • 没有找到相关文章

最新更新