为了说明这个原因,我写如下段代码你可以在不运行的状况下说下结果,然后我再说明原因:
<script type="text/javascript">
document.write("<script type='text/javascript'>alert('hello');</script>");
</script>
这段代码按照我们的想法是要alert出一个hello出来,但结果并非如此。结果是在页面上显示的是 "); 这几个字符!为什么会这样子呢?原因很简单,这就是当浏览器遇到</script>时,它就假定其中的代码块是完整的(即使它出现在JavaScript字符串中)。所以结果就是浏览器认为该段代码有误,首先,alert漏掉了闭合括号,其次有两个</script>标签。那么,我们该如何解决这个问题呢?方法有两种:
解决的办法有二:
腾讯采用了第二种写法来解决这个问题。
学习了!!!