JavaScript对象定义报Invalid or unexpected token错误如何解决?
错误触发原因
该报错通常出现在你将这段JavaScript代码直接写在HTML页面的<script>标签内部的场景:浏览器在解析HTML内容时,会优先匹配<script>的闭合标签</script>,无论该字符串是否位于JavaScript的引号内部,只要扫描到</script>文本就会判定当前脚本块结束,导致后续代码被截断,最终触发语法错误。
正确写法
核心思路是避免字符串中出现完整的</script>文本即可,常用方案如下:
- 方案1:转义闭合标签中的斜杠
在</script>的斜杠前加反斜杠转义,JS字符串解析时会自动还原为正常斜杠,同时不会被浏览器识别为脚本闭合标记,修改后代码如下:"value": { "Some property": [ { "tag": "<script async defer data-domain=\"example.com\" src=\"example.com/somePage.js\"><\/script>", "type": "script" } ] }, - 方案2:拆分闭合标签拼接
将</script>拆分为两段字符串拼接,也可以规避识别问题:"tag": "<script async defer data-domain=\"example.com\" src=\"example.com/somePage.js\"></scr" + "ipt>",
以上两种方案修改后,字符串最终输出的内容和原始内容完全一致,不会影响后续插入DOM等操作的效果。
内容的提问来源于stack exchange,提问作者pookeeshtron
相关产品推荐
相关产品推荐

