2012-05-08 3 views
-1

나는 내가 JS 클라이언트에 JSON 변환 및 전송이 객체 생성 :탈출 따옴표 문제

$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은 결코 호출되지 않습니다. 그 상황에서 따옴표를 벗어나는 올바른 방법은 무엇입니까?

편집 : 당신은 onclick='MyFunction('myParameter');'에 따옴표의 결함 중첩이

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

결과 JS는 어떻게 생겼습니까? 데이터로 무엇을하고 있습니까? –

+0

어떤 물건? 이것은 배열입니다. 가장 관련성이 높은 코드 인 JSON 변환도 생략합니다. JSON은 JavaScript가 아니며 코드를 포함 할 수 없습니다. –

+1

@DonCallisto : 그건 의미가 없으며 또한 거짓입니다. – Ashe

답변

1
<a href='#' onclick='MyFunction('myParameter');'> 

당신은 "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>"); 
1

:이 결과 JSON이다. 사용 대신 큰 따옴표를 탈출 :

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

JSON의 멘션이 붉은 청어입니다.

코드를 살펴보십시오.

onclick='MyFunction(\"myParameter\");'> 
: 당신이 중 하나가 그들이 인용의 종류에 따라 구분 된 PHP 문자열 내부에 있기 때문에 탈출해야하는 다른 따옴표를 사용해야

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

: 나는 속성 값의 시작과 끝을 표시 한

... 또는 당신은 HTML 엔티티를 사용해야합니다

onclick='MyFunction(&quot;myParameter&quot;);'> 
일반적으로

비록 말하기, 당신은 쇼를 uld는 내장 이벤트 속성을 완전히 피하고 대신 JavaScript 이벤트 바인딩을 선호합니다 (종종 이벤트 위임을 사용하므로 DOM에 새 요소를 추가 할 때마다 이벤트를 바인딩 할 필요가 없습니다).