簡體   English   中英

轉義報價問題

[英]escaping quotes issue

在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');\"
<a href='#' onclick='MyFunction('myParameter');'>

您在“ onclick”中使用單引號,但“ onclick”本身用單引號分隔。

嘗試:

$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>");

您提到的JSON是一個紅色鯡魚。

看代碼。 我已經標記了屬性值的開始和結束:

 onclick='MyFunction('myParameter');'>
         ^           ^

您要么需要使用不同的引號,因為它們位於用該類型的引號定界的PHP字符串中,因此必須對其進行轉義:

 onclick='MyFunction(\"myParameter\");'>

…或您需要使用HTML實體:

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

不過,一般來講,您應該完全避免使用固有事件屬性,而應該支持JavaScript事件綁定(通常使用事件委托),因此,不必在每次向DOM中添加新元素時都綁定事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM