奇怪的未终止字符串文本错误与Firefox

strange unterminated string literal error with Firefox

本文关键字:文本 错误 Firefox 字符串 终止      更新时间:2023-09-26

我已经看到了类似的问题,但我已经彻底检查了以下问题。我在Firefox的控制台中收到"未终止的字符串文字"错误。

我有一个HTML页面如下:

<HTML>
<HEAD>
<SCRIPT type="text/JavaScript">
var test = "</script>";
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>

据我所知,这个JavaScript应该没有什么无效的,因为我不相信'<', '/'或'>'在用作JavaScript字符串变量的一部分时需要转义。其实下面的作品:

var test = "</>";

所以,我想知道我的小脚本是如何管理绊倒浏览器或如何我可以围绕它工作?

你要担心的不是js,而是html。
html解析器读取您的"</script>"字符串作为结束标记关闭脚本标记,结束脚本。所以js解释器看到

var test = "

要避免这种情况,可以使用转义技巧

<SCRIPT type="text/JavaScript">
var test = "<'/script>";
</SCRIPT>