Javascript 转义引号问题

Javascript 转义引号问题,javascript,quotes,Javascript,Quotes,在PHP中,我创建了这个对象,将其转换为JSON并发送到JS客户端: $arr = array("img"=>"http://www.myDomain.com/imgs/pic_1.jpg","data"=>"<p>This is a paragraph <a href='#' onclick='MyFunction('myParameter');'>My Link</a></p>"); 我认为我在函数调用中做了一些错误的事情,但是现

在PHP中,我创建了这个对象,将其转换为JSON并发送到JS客户端:

$arr = array("img"=>"http://www.myDomain.com/imgs/pic_1.jpg","data"=>"<p>This is a paragraph <a href='#' onclick='MyFunction('myParameter');'>My Link</a></p>");
我认为我在函数调用中做了一些错误的事情,但是现在,一旦注入HTML,MyFunction就永远不会被调用。在这种情况下,哪种方法是避免引用的正确方法

编辑:这是生成的JSON:

{"img":"http:\/\/www.myDomain.com\/imgs\/pic_1.jpg","data":"<p>Paragraph: <a href='#' onclick='localFunction('parameter');'>Link<\/a><\/p>","length":2}

onclick='MyFunction'myParameter';'中的引号嵌套错误。请改用转义双引号:

onclick=\"MyFunction('myParameter');\"
onclick中有单引号,但onclick本身用单引号分隔

尝试:


你提到JSON是在转移注意力

看看代码。我已标记属性值的开始和结束:

 onclick='MyFunction('myParameter');'>
         ^           ^
您需要使用不同的引号,这些引号必须转义,因为它们位于由该引号类型分隔的PHP字符串中:

 onclick='MyFunction(\"myParameter\");'>
…或者您需要使用HTML实体:

 onclick='MyFunction(&quot;myParameter&quot;);'>

不过,一般来说,您应该完全避免固有的事件属性,而应该经常使用事件委派来支持JavaScript事件绑定,这样您就不必在每次向DOM添加新元素时都绑定事件。

生成的JS是什么样子的?你在用数据做什么?什么对象?这是一个数组。您还省略了最相关的一段代码:JSON转换。更不用说JSON不是JavaScript:它不能包含代码。@DonCallisto:这毫无意义,也是错误的。@阿尔瓦罗:如果我们假设他使用的是内置JSON转换工具,那么这不是问题。这也不是问题,因为问题在她给出的代码中很明显。@Len-你是对的。这个问题与PHP和JSON都无关。
 onclick='MyFunction(\"myParameter\");'>
 onclick='MyFunction(&quot;myParameter&quot;);'>