javascript如何实现html字符转实体


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

//仅限于包含`&、<、>、'`的文本转换

function stringToEntity(str){

  var div=document.createElement('div');

  div.innerText=str;

  div.textContent=str;

  var res=div.innerHTML;

  console.log(str,'->',res);

  return res;

}

其实除了innerText,还可以通过创建文本节点的方式来完成转义,即使用document.createTextNode()。这种方法大部分的应用场景是对用户输入进行转义。例如业务需要,我们需要把用户的输入写到网页上,不做转义直接将用户输入写到网页上往往是行不通的,因为容易出现XSS漏洞。不过我们可以通过document.createTextNode()方法将用户输入作为文本节点,然后再插入到文档中。该方法会对出现的特殊标记进行转义。例如如下代码:

1

2

3

var str="<img src='a valid url' οnlοad='alert(1)'></img>";

var text=document.createTextNode(str);

$("container").appendChild(text);

上述代码中如果不加转义直接使用$("container").innerHTML=str;就会使得图片加载完运行onload里面的代码,如果代码是恶意的,就会为我们网站的用户造成损害。而将小于号、大于号转义后就不会出现这个问题了。

【推荐学习:javascript高级教程

以上就是javascript如何实现html字符转实体的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

vue全家桶有哪些

js将函数赋值给变量后该怎么使用

网页漂浮广告js特效源码分享

js读写cookie

js如何实现滑动门效果

vue 轻量级图表组件

js需要什么基础?

js如何利用键盘事件实现人物行走

js如何添加css样式

详细介绍下js中的window与document

更多相关阅读请进入《js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...