美文网首页
React中解决html字符转义的几中方法

React中解决html字符转义的几中方法

作者: 郭_小青 | 来源:发表于2020-02-25 11:10 被阅读0次

    React 会将所有要显示到 DOM 的字符串转义,防止 XSS。所以如果 JSX 中含有转义后的实体字符比如 © (©) 最后显示到 DOM 中不会正确显示,因为 React 自动把 © 中的特殊字符转义了>

    解决办法:

    • 直接使用 UTF-8 字符 ©
    • 使用对应字符的 Unicode 编码,查询编码
    • 使用数组组装 <div>{['cc ', <span>&copy;</span>, ' 2015']}</div>
    • 直接插入原始的 HTML
    <div dangerouslySetInnerHTML={{__html: 'cc &copy; 2015'}} /> // cc © 2015
    // 如果直接调用接口中返回的值dataHtml,则用以下方法
    <div dangerouslySetInnerHTML={{__html: dataHtml}} />
    
    
    *  dangerouslySetInnerHTML是React标签的一个属性
    *  其中有2个{{}},第1个代表Jsx{}开始,第2个代表dangerouslySetInnerHTML接收的是一个对象键值对
    *  既可以插入DOM又可以插入字符串
    *  不合时宜的使用 innerHTML可能会导致 cross-site scripting (XSS) 攻击。 净化用户的输入来显示的时候,经常会出现错误,不合适的净化也是导致网页攻击的原因之一。
    *  dangerouslySetInnerHTML 这个 prop 的命名是故意这么设计的,以此来警告,它的 prop 值( 一个对象而不是字符串 )应该被用来表明净化后的数据
    

    相关文章

      网友评论

          本文标题:React中解决html字符转义的几中方法

          本文链接:https://www.haomeiwen.com/subject/dpyzqhtx.html