究竟需要在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最终会如此普遍.