这 :
<script type="text/javascript">
var a = new Array("</script>");
alert(a);
</script>
...没有按预期工作(至少对我来说)。该字符串"</script>"
被解释为脚本的结尾,即使它在引号中。请参阅这些 jsfiddles :
第一个以正常方式声明数组的第一个元素,而第二个以紧凑形式声明它。在这两种情况下,浏览器(Chrome、FF、IE)都会停止脚本"</script>"
并且永远不会收到警报。
无论是使用引号还是双引号,它的行为方式都相同。
是预期的吗?有解决方法吗?
编辑:谢谢大家,我会避开反斜杠。抱歉我不能接受大家的回答,我接受了第一个,但是谢谢大家。
Juhana 提供的链接解释了这种行为:
在将元素中的文本节点传递给 JS 引擎之前解析所有 HTML,
</script>
在 JS 字符串文字内没有特殊处理