0

可能重复:
为什么用 document.write() 编写 <script> 标签时要拆分它?

浏览一些Chromium 源(见第 45 行),我发现:

in_script_tag: function(code) {
  return "<script>" + code + "</scr" + "ipt>";
},

有谁知道作者为什么选择"</scr" + "ipt>"over "</script>"

4

2 回答 2

8

<script>标签内</script>结束它,无论它出现在哪里。

例子:

<script>
alert('</script>');
// anything here will not be executed anymore
</script>

原因很简单,浏览器对 JavaScript 字符串等一无所知,所以当它看到</script>它时总是关闭<script>标签。

于 2012-06-17T10:47:39.360 回答
1

因为每次 HTML 解析器看到</script,它都会自动认为 javascript 片段已完成。)

于 2012-06-17T10:48:16.077 回答