PHP (wordpress plugin)의 Google Translate 코드를 페이지에 출력하려고하는데, 동일한 코드 행을 콘솔에 직접 붙여넣고 실행해도 불법 토큰 오류가 발생합니다. GT는에 오류왜 PHP에서 JavaScript를 출력 할 때 불법 토큰이 나옵니까?
Uncaught SyntaxError: Unexpected token ILLEGAL
원인
<script>
jQuery(document).ready(function(){
gt = escape('<div id="google_translate_element"></div><script type="text/javascript">function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: "en", layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, "google_translate_element");}</script><script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>');
jQuery('#sidebar').prepend(unescape(gt));
});
</script>
:
function AddTranslateSidebar(){
echo "<script>
jQuery(document).ready(function(){
gt = escape('<div id=\"google_translate_element\"></div><script type=\"text/javascript\">function googleTranslateElementInit() {new google.translate.TranslateElement({pageLanguage: \"en\", layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, \"google_translate_element\");}</script><script type=\"text/javascript\" src=\"http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit\"></script>');
jQuery('#sidebar').prepend(unescape(gt));
});
</script>";
}
는 그 코드는 HTML/자바 스크립트로 페이지에 다음과 같은 출력 : 여기에
내 PHP입니다 = 이스케이프 (...); 선.그러나 인스펙터를 사용하여 HTML 소스에서 직접 코드를 복사 한 다음 콘솔에 붙여넣고 실행하면 작동하고 드롭 다운 메뉴가 나타납니다.
왜 이런 일이 발생합니까?
감사합니다.
는 이스케이프 문자열이 제대로 반환된다
이 될해야
? 당신은 jslint에 붙여 넣었습니까? –왜 탈출/탈출합니까? 'gt = 'blahblahblah'; .prepend (gt)'도 마찬가지입니다. –
@JayBlanchard 예 이스케이프 처리되지 않은 문자열이 정상적으로 돌아옵니다. PHP에서 HTML 출력 결과를 직접 복사하여 콘솔에 붙여 넣었으므로 완벽하게 실행되었습니다. 당신은 그것을 여기에서 볼 수 있습니다 : http://www.georgiancollege.ca/internationaldev/current-students/ – tsdexter