我有一个带onclick事件的标签,就像那样:
onclick="cl_showEvents({
'posts' :
[{
'CategoryName':'categoryName',
'postID':'1',
'title':'title',
'address':'address',
'time':'00:00'}]
})"
它可以正常工作,直到发出转义序列,如下所示:
onclick="cl_showEvents({
'posts' :
[{
'CategoryName':'categoryName',
'postID':'1',
'title':'title',
'address':'streetName st'',
'time':'00:00'}]
})"
我想念什么?
答案 0 :(得分:1)
不是你的问题的答案 - 我不确定'
是如何打破这种结构的 - 但这对于IMO标签来说太过分了。我建议将整个内容移到页面底部或load
/ DOMLoad
事件中的单独脚本中。
Sans jQuery:
document.getElementById("your_element").onclick = function()
{
cl_showEvents({
'posts' :
[{
'CategoryName':'categoryName',
'postID':'1',
'title':'title',
'address':'streetName st'',
'time':'00:00'}]
})
}
答案 1 :(得分:1)
在&符号前加一个反斜杠:
'address':'streetName st\''
避免将实体&39;
转换为它所代表的char。
答案 2 :(得分:1)
这不是因为角色是HTML编码的,只是因为它是一个撇号。当您使用撇号作为字符串分隔符时,您必须转义字符串中的撇号:
onclick="cl_showEvents({
'posts' :
[{
'CategoryName':'categoryName',
'postID':'1',
'title':'title',
'address':'streetName st\'',
'time':'00:00'}]
})"
请注意,撇号不需要进行HTML编码,您只需使用常规撇号(并且看到这样的代码可以更明显地说明撇号需要转义的原因):
onclick="cl_showEvents({
'posts' :
[{
'CategoryName':'categoryName',
'postID':'1',
'title':'title',
'address':'streetName st\'',
'time':'00:00'}]
})"