为什么我需要在JavaScript中转义'/'字符?

Tri*_*tan 6 javascript

究竟需要在javascript字符串中进行转义.或者,更具体地说,为什么

var snaphtml = '<script src="http://seadragon.com/embed/lxe.js?width=auto&height=400px"></script>';
Run Code Online (Sandbox Code Playgroud)

给出语法错误?逃避决赛<\/script>似乎修复了语法错误,但这对我作为javascript初学者没有意义.

Mic*_*urr 11

问题可能是Web浏览器看到" </script>"序列并确定脚本块的结束.

除了像你一样使用转义序列之外解决问题的另一种方法是将它分成2个连接的字符串:

"<" + "/script>" 
Run Code Online (Sandbox Code Playgroud)

您所看到的行为不是浏览器中的错误.

浏览器不会"查看"脚本块,它们只是将内容传递给脚本引擎." </script>"序列是他们知道他们已经到达块结尾的方式,并且由于浏览器不解释块的内容,因此它无法知道它是在文本字符串的上下文中.脚本代码.

请记住,浏览器可以支持比Javascript更多的脚本语言,即使它不常见.Internet Explorer支持VBscript(我认为任何脚本语言都可以由Windows脚本主机运行,但我不确定).当具有脚本块的能力被放入浏览器的时候,没有人能确定Javascript最终会如此普遍.

  • 当然最优雅的解决方案是"<\/script>"`.见http://mathiasbynens.be/notes/etago (2认同)