2016-09-12 10 views
0

У меня есть текст, который был получен из моей базы данных с помощью PHP и имеет символы, такие как "', а также имеет разрывы строк. Теперь я передал его в jQuery строку, используя кавычку как этотBackticks создает ошибку jQuery в мобильном браузере

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

И это прекрасно работает с настольными браузерами, но когда я пытаюсь его с мобильными браузерами, хотя я не могу видеть console.log в мобильных браузерах, но я верю, что я получаю некоторые ошибки, потому что мой код jQuery отказывается функционировать, но когда я прокомментирую вышеприведенную строку, он отлично работает. Пожалуйста, кто-нибудь знает, как я могу это исправить?

+0

это [шаблон] буквального (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals), который представляет собой новый тип строковый литерал. Они новы для ES6, а это значит, что они не поддерживаются в некоторых браузерах. – 4castle

ответ

3

Вы полагаетесь на довольно новую функцию JavaScript (официально представленную в июне 2015 года как часть ES2015, также известный как ES6): Template literals. Неудивительно, что вы работаете в браузерах со старыми механизмами JavaScript, которые не поддерживают шаблонные литералы.

Он также потерпит неудачу, если выход произошел с , содержащим обратные выходы.

Правильная вещь здесь должным образом избежать содержание строки. РНР json_encode будет счастливо принимать строку и выводить JavaScript-совместимый, экранированием для вас:

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

Если $text содержит строку, например:

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

что бы прибыть в браузере будет :

var str = "Bob: Hi, my name is Bob, but people call me \"Bobby;\" it's a nickname.\nWilma: Hi Bobby!"; 
+0

Это отличный совет! – Ejaz

+0

Большое спасибо @Crowder –

 Смежные вопросы

  • Нет связанных вопросов^_^