2016-09-12 13 views
0

데이터베이스에서 PHP으로 검색 한 텍스트가 "'과 같이 줄 바꿈 문자가 있습니다. 지금은이역 추적으로 모바일 브라우저에서 jQuery 오류가 발생합니다.

var str = `<?php echo $text; ?>`; 

같은 역 따옴표를 사용하여 jQuery 문자열로 전달 그리고 데스크톱 브라우저에서 잘 작동하지만 모바일 브라우저를하려고 할 때 모바일 브라우저하지만 난에 CONSOLE.LOG를 볼 수 있지만 내 jQuery 코드가 기능을 거부하기 때문에 일부 오류가 발생한다고 생각하지만 위의 행을 주석 처리하면 정상적으로 작동합니다. 아무도 내가 이것을 고칠 수있는 방법을 알고 있습니까?

+0

(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) 리터럴 스트링의 새로운 종류이다. ES6을 처음 사용하기 때문에 일부 브라우저에서는 지원되지 않습니다. – 4castle

답변

3

JavaScript의 새로운 기능 (2015 년 6 월 공식적으로 ES2015, "ES6"의 일부로 도입 됨) : Template literals에 의존하고 있습니다. 템플릿 리터럴을 지원하지 않는 오래된 자바 스크립트 엔진을 사용하는 브라우저를 사용하고있는 것은 당연한 일입니다.

에 출력이 발생하여 backticks가 포함 된 경우에도 오류가 발생합니다.

여기에서 올바른 것은 이 문자열 내용 인을 올바르게 이스케이프 처리합니다. PHP의 json_encode 즐겁게 자바 스크립트 호환 문자열 출력을 걸릴 것입니다, 당신을 위해 버전을 탈출 :

 
Bob: Hi, my name is Bob, but people call me "Bobby;" it's a nickname. 
Wilma: Hi Bobby! 

것 브라우저에 어떻게 도착합니다 : $text는 예를 들어 문자열을 포함

var str = <?php echo json_encode($text); ?>; 

경우 :

A [리터럴 템플릿]이다
var str = "Bob: Hi, my name is Bob, but people call me \"Bobby;\" it's a nickname.\nWilma: Hi Bobby!"; 
+0

큰 팁입니다! – Ejaz

+0

고마워요 @Crowder –