2015-01-06 2 views
0

Я использую CKEditor в моем проекте, который преобразует введенные пользователем в HTML следующим образом:Неожиданный маркер НЕЗАКОННО - значение CKEditor в JavaScript

<p>summary:</p> 

<ul> 
    <li>test</li> 
    <li>test2</li> 
    <li>test3</li> 
</ul> 

При получении этих данных в JQuery следующим образом:

var title = "{{$p->title}}"; 
var start = "{{$p->start_date}}"; 
var end = "{{$p->end_date}}"; 
var summary = '{{$p->summary}}'; 

Я получаю следующее сообщение об ошибке:

Uncaught SyntaxError: Unexpected token ILLEGAL 

в кратком var.By осмотре элемента, это следующим образом:

var summary = '<ul> 
    <li>test</li> 
    <li>tes2</li> 
    <li>test3</li> 
</ul> 
'; 

Я знаю, это может показаться неуклюжей ошибка, но я не могу понять, почему это не работает.

+1

Read: [Создание многострочных строк в JavaScript] (http://stackoverflow.com/questions/805107/creating-multiline-strings-in-javascript) –

ответ

2

Строковые литералы в JavaScript не могут включать в себя неэкранированные литеральные символы новой строки.

Если вы хотите преобразовать переменные PHP в строку JavaScript, используйте json_encode, не повторяйте его вслух.

$js_safe = array(
    title => json_encode($p->title), 
    # etc 
); 

Тогда:

var title = {{$js_safe->title}}; 

Обратите внимание, что json_encode добавит кавычки для вас.

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