下面的简单代码块可以在静态HTML页面中提供,但会导致JavaScript错误.你应该如何逃避onClick处理程序中的嵌入式双引号(即\"xyz)?注意,HTML是通过从数据库中提取数据来动态生成的,数据库的数据是其他HTML代码的片段,可以是单个或双引号.似乎在双引号字符之前添加一个反斜杠并不能解决问题.
Test
Landon Kuhn.. 84
你试过了吗
"
要么 \x22
代替
\"
?
你试过了吗
"
要么 \x22
代替
\"
?
它需要进行HTML转义,而不是Javascript转义.更改\"
到"
虽然我同意CMS以不引人注目的方式(通过像jquery或dojo这样的lib)执行此操作,但这也是有用的:
Test
barfs的原因不是因为JavaScript,而是因为HTML解析器.它没有逃脱引号的概念,它在查找结束引用时发现它并找到它并将其作为onclick函数返回.这是无效的JavaScript,但是在JavaScript尝试执行该函数之前,您找不到有关错误的信息.
您可能还想尝试使用两个反斜杠(\\")
来转义转义字符.