未终止字符串文字的常见来源

IT技术 javascript debugging firefox-addon
2021-02-11 10:39:43

我正在尝试调试在 Firefox 扩展中读取并执行的 JavaScript 脚本。我只能通过 Firebug 控制台看到错误(我的代码对 Firebug 不可见),并且它报告了“未终止的字符串文字”。

我检查了这条线和它周围的线,一切似乎都很好——括号、大括号和引号是平衡的,等等。我应该寻找哪些其他可能的原因?

6个回答

大多数浏览器似乎都有这样的代码问题:

var foo = "</script>";

在 Firefox、Opera 和 IE8 中,这会导致未终止的字符串文字错误。序列化包含脚本的 html 代码时可能会非常讨厌。

我无法相信这一点,它解决了问题。在一百万年后,我永远不会猜到这一点。:(
2021-03-18 10:39:43
也许您忘记将脚本包含在 HTML 注释中。
2021-03-30 10:39:43
这是我错误的原因,即使脚本通过了 JSLint。我将“</script>”更改为“</scr”+“ipt>”并修复了它。
2021-04-03 10:39:43
简单地转义斜线也可以。
2021-04-10 10:39:43
啊。这背后有什么原因吗?
2021-04-13 10:39:43

寻找换行符!这些往往是原因。

执行dos2unix file.js将换行符从 CRLF 转换为 LF。
2021-03-16 10:39:43
我会说 - 我偶然发现了这个试图解决我的问题,我需要做的就是剥离我的文字。
2021-03-17 10:39:43
这为我修好了,很好的收获。
2021-03-27 10:39:43
这对我也有用。为什么为什么为什么??
2021-04-01 10:39:43
你知道这是什么原因吗?
2021-04-10 10:39:43

如果我有“声誉”,我会投票支持 jamtoday 的答案

如果您的数据来自 PHP,这可能会有所帮助

$str = str_replace(array("\r", "\n"), '', $str);
@NielsBom 它只是删除了换行符(通过什么都不替换它们)
2021-03-15 10:39:43
这也解决了我的问题,太糟糕了,我不明白为什么
2021-03-28 10:39:43
解决了我的问题 - 赞成!谢谢!
2021-04-01 10:39:43
这对我有用。谢谢 :-)
2021-04-11 10:39:43
仅供参考,你不会投票“支持”任何一个,单一的答案。在您认为合适的情况下,对任何/所有答案投赞成票/反对票。
2021-04-14 10:39:43

我刚刚发现它"<\/script>"似乎和"</scr"+"ipt>".

只需转义您的标签闭包或使用 ascii 代码

IE

<\/script>

IE

<&#47;script>