为什么拥有`<脚本>`在字符串文字中导致JS语法错误
Why does having `<script>` in a string literal cause a JS syntax error?
考虑以下代码:
var testVar = "<script>alert('"a'")</script>@emaildomain.con";
在FF上的控制台中,我得到错误
SyntaxError:未终止的字符串文字。
但是,如果将script
更改为xscript
,则不会出现错误:
var testVar = "<xscript>alert('"a'")</xscript>@emaildomain.con";
在JS中转义script
标记的正确方法是什么?为什么将它们包含在字符串中会导致这种行为?
</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未捕获语法错误意外的标识符错误
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 未捕获的语法错误:意外的标记{
- "未捕获的语法错误:意外的标记}"
- 未捕获的语法错误:无法在“文档”上执行“查询选择器”
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- $(input[]).仅在firefox中出现每个抛出语法错误
- 为什么浏览器没有为语法错误抛出异常
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获的语法错误:意外的令牌,
- jQuery.getJSON失败,语法错误
- "未捕获的语法错误:意外的标记"角度JS
- 参数列表Three.js之后的未捕获语法错误:缺少)
- 循环的Javascript冻结浏览器,没有语法错误
- 为什么匿名函数本身就是javascript中的语法错误
- 这怎么不是语法错误?这毫无意义!(javascript)
- 语法错误:缺少:在属性 ID 之后
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]