字符串"</ script>"在IE中导致错误

And*_*rey 2 html javascript

如果我将这段html添加到我的页面:

<script type="text/javascript">
 var s = '</script>'
</script>
Run Code Online (Sandbox Code Playgroud)

IE 7.0显示语法错误(左下角的感叹号):"未终止的字符串常量"

如果我只更改一个字母(任何),则错误消失 - 看起来IE不喜欢这个特定的单词,包括括号.

有什么想法吗?

谢谢,安德烈

dha*_*rga 8

这适合我

var a = "<\/script>"
Run Code Online (Sandbox Code Playgroud)

  • 你不应该将代码包装在<! - - >中.我们不再需要迎合Netscape 2了. (6认同)

Mic*_*sen 6

任何浏览器都会发生这种情况.HTML解析器不知道您尝试使用的脚本语言的详细信息,因此无论上下文如何,您的<script>标记都将在第一次出现时终止</script>.然后JS解析器会抱怨字符串没有终止,因为结束撇号不在脚本块内.

'<\/script>'如果你想在脚本中使用那个scring,你需要使用类似的东西.

  • 我在这方面并不熟悉SGML规则,但我只是再次检查,HTML确实明确声明"</"是什么终止SCRIPT(除了那个序列,元素的内容只是简单的CDATA) - http:// www.w3.org/TR/REC-html40/types.html#type-cdata (3认同)