考虑以下代码:
var testVar = "<script>alert(\"a\")</script>@emaildomain.con";
在 FF 的控制台中,我收到错误
SyntaxError: unterminated string literal.
但是,如果您更改 script
至xscript
,没有错误:
var testVar = "<xscript>alert(\"a\")</xscript>@emaildomain.con";
正确的逃生方法是什么script
JS 中的标签,为什么将它们包含在字符串文字中会导致这种行为?
最佳答案
</script>
部分实际上关闭了起始标记。
<script type="text/javascript">
var testVar = "<script>alert(\"a\")</script>@emaildomain.con";
</script>
所以,你的脚本将是:
<script type="text/javascript">
var testVar = "<script>alert(\"a\")
</script>
@emaildomain.con";</script>
要解决该问题,您可以这样做:
<script type="text/javascript">
var testVar = "<script>alert(\"a\")</" + "script>@emaildomain.con";
</script>
关于javascript - 为什么字符串中包含 `<script>` 会导致 JS 语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34233520/