为什么转义的单个 qoute ' 结束 JavaScript 字符串?



我正在使用Jinja2在javascript函数中插入一个字符串,如下所示:

<button type="button" onclick="someFunction('{{ aStringWithSignleQuote }}');">

我打开了 jinja 的自动转义功能,以便将单引号呈现为

&#39;

如果我查看页面的源代码,那么这是有效的(我看到转义的字符),但是当我单击按钮时,会出现错误,因为 JavaScript 认为字符串以转义的单引号结尾。

有人猜这里发生了什么?

由于它位于 HTML 属性值中,因此在由 JavaScript 解析器处理之前,它由 HTML 解析器处理。

如果你想为 JavaScript 转

义它,你需要为 JavaScript 转义它(使用 )。

最新更新