如果我将这段html添加到我的页面:
<script type="text/javascript">
var s = '</script>'
</script>
IE 7.0显示语法错误(左下角的感叹号):“未终止的字符串常量”
如果我只更改一个字母(任何一个),则错误消失 - 看起来IE不喜欢这个特定的单词,包括括号。
任何想法为什么?
谢谢你, 安德烈
答案 0 :(得分:8)
这对我有用
var a = "<\/script>"
答案 1 :(得分:6)
任何浏览器都会发生这种情况。 HTML解析器不知道您尝试使用的脚本语言的详细信息,因此<script>
标记将在</script>
的第一次出现时终止,无论上下文如何。然后JS解析器会抱怨字符串没有终止,因为关闭的撇号不在脚本块中。
如果您想在脚本中使用该scring,则需要使用类似'<\/script>'
的内容。
答案 2 :(得分:3)
要使用/字符,您需要先用\
作为前缀。
这样可行:
<script type="text/javascript"> var s = '<\/script>'; alert( s);</script>
答案 3 :(得分:1)
我见过这个......
var s = '</scr' + 'ipt>'
那说,它散发出一点代码味道。我不确定它是否合适。 :)
答案 4 :(得分:0)
我见过这个:
var s = unescape("%3C/script%3E")
闻起来也很糟糕。