我在项目中使用sanitize-html。假设我收到一封带有 anchor 标记的邮件,如下所示:this is to test something <a href="https://www.google.com/">open google</a>
这封邮件会这样显示在我的邮箱中:this is to test something open google
它将在同一标签中打开google.com。但是我需要在新选项卡中打开。
这是我的代码。

__html = sanitizeHTML(children, {
        allowedTags: sanitizeHTML.defaults.allowedTags.concat([ 'img' ]),
        allowedAttributes: {
          '*': [ 'href', 'align', 'alt', 'center', 'bgcolor', 'style', 'width' ],
          'img': ['src'],
          'a' : ['target']
        },
       }

在这里,我要设置或覆盖target =“_blank”。如何在sanitize-html中实现呢?

不幸的是,我找不到sanitize-html的标签。

最佳答案

根据READ.MD/doc和您的问题描述,类似:

__html = sanitizeHTML(children, {
    ...,
    transformTags: {
      'a': function(tagName, attribs) {// simpleTransform also possible...
       return {
        tagName: 'a',//tagName
        attribs: {
            target: '_blank',
            href:   '*'
        }
    };
}

...应该这样做。



保留当前(允许!)属性的更好解决方案:
....
 transformTags: {
   'a': sanitizeHtml.simpleTransform('a', {target: '_blank'})
 }

关于javascript - 如何在 “_blank”的 anchor 标记中设置或覆盖target = 'sanitize-html'?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50286819/

10-12 13:42