2012-09-13 3 views
2

동적으로 생성 된 HTML 컨텐트를 저장하는 변수를 만들어야합니다. PHP에서 반환 된 String의 html 내용은 작은 따옴표 나 큰 따옴표가있을 수 있습니다. 이 같은작은 따옴표와 큰 따옴표가있는 JavaScript 변수에 문자열을 저장하는 방법은 무엇입니까?

<span id="something">something else</span> 

또는 작은 따옴표 :

다음
<span id='something'>something else</span> 

, 어떻게 제대로 자바 스크립트 문자열을 저장할 수 있습니다

html_content=<?=$string;?>; 

문자열은 다음과 같이 따옴표를 가질 수있다? 작은 따옴표 나 큰 따옴표는 사용할 수 없습니다.

+2

보조 노트와 마찬가지로 호환성을 위해 대신 항상 을 사용하는 것이 좋습니다. 전자는 어디에서나 지원되며 후자는 반드시 지원되지 않습니다. 정보를 위해서. – vanneto

답변

2

이 같은 출력하기 전에 서버 측에서이를 수정하여 문자열의 종류를 저장할 수 :

html_content = "<?=addslashes($string);?>" 

방법 addslashes($string) 다음 자바 스크립트 변수에 공급하기 전에 런타임에 어떤 따옴표를 이스케이프합니다.

0

json_encode을 사용하면 PHP의 거의 모든 변수를 JavaScript로 전달할 수 있습니다.

html_content=<?=json_encode($string)?>; 

문자열의 경우 따옴표 및 필요한 이스케이프가 자동으로 추가됩니다.

1

글자를 저장하기 전에 항상 JavaScript's escape function을 사용하여 문자열을 직렬화 할 수 있습니다. 그게 효과가있을거야.

큰 문제는 여기에 있지만, 작은 따옴표는 실제로 HTML 사양에 따라 id 속성에서 사용하려고 시도하는 방식이 유효하지 않다는 것입니다. 항상 큰 따옴표 여야합니다. 그 코드가 여러분의 통제하에 있지 않다면, 여러분이 할 수있는 일이별로 없으며, 단지 깨졌습니다. 그러나 그것이 당신의 통제하에 있다면, 당신도 그것을 고쳐야합니다.

+0

이스케이프가 지원 중단되었습니다. – ftrotter