为什么一个逃逸的单曲qoute' 结束javascript字符串?

为什么一个逃逸的单曲qoute&#39; 结束javascript字符串?,javascript,escaping,quotes,jinja2,Javascript,Escaping,Quotes,Jinja2,我使用Jinja2在javascript函数中插入一个字符串,如下所示: <button type="button" onclick="someFunction('{{ aStringWithSignleQuote }}');"> 如果我查看页面的源代码,那么这是可行的(我看到转义字符),但是当我单击按钮时,出现了一个错误,因为javascript认为,字符串以转义单引号结尾 有人猜测这里发生了什么?因为它位于HTML属性值中,所以在被JavaScript解析器处理之前,它由HTM

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

<button type="button" onclick="someFunction('{{ aStringWithSignleQuote }}');">
如果我查看页面的源代码,那么这是可行的(我看到转义字符),但是当我单击按钮时,出现了一个错误,因为javascript认为,字符串以转义单引号结尾


有人猜测这里发生了什么?

因为它位于HTML属性值中,所以在被JavaScript解析器处理之前,它由HTML解析器处理


如果要为JavaScript转义它,则需要为JavaScript转义它(使用
\
)。

请不要使用事件处理程序属性。而且
javascript:
完全放错地方了。@Bergi那么做的最佳实践是什么呢?使用。从脚本而不是标记中添加事件处理程序。当然,在将字符串回显到脚本中时,仍然需要对其进行转义。
&#39;