2016-10-03 3 views
-1

Я знаю основы Javascript и JQuery. Однако мне нужно вывести некоторый html в переменной Javascript. Вот код:Вывести html в переменную с Javascript

$(function() { 
    var availableTags = [ 
     "{% for entry in craft.entries.find() %}","<a href='{{ entry.url }}'>{{ entry.title }}</a>","{% endfor %}" 
    ]; 
    $("#search-results-general").autocomplete({ 
     source: availableTags 
    }); 
} 
); 

Код в этом Javascript является Прут и некоторые HTML. Потому что CMS, которую я использую, является Craft CMS.

Заранее благодарен!

+1

Выход где? На страницу? На консоль? –

+0

В чем проблема? Что делает/не делает код? –

+0

Привет, ребята, Таким образом, переменная должна выводить некоторые теги html, такие как , to the same page. The code will output in the div #search-results-general with help from an external .js file. – SeeklesBodil

ответ

0

Twig обычно запускается на сервере (сначала), JavaScript обычно запускается на клиенте (позже, когда страница была обращена к html). Теги Twig, добавленные JavaScript, не будут выполняться, если вы не используете очень странную настройку.

Возможно, вам придется придерживаться другого подхода к более широкой проблеме или изменить вопрос и подробно объяснить детали своей установки, если вы делаете странные вещи с помощью библиотек ветви на стороне сервера jQuery или на стороне клиента.

В контексте файла веточку, вы можете быть в состоянии сделать что-то вроде:

<script> 
$(function() { 
    var availableTags = [ 
    {% for entry in craft.entries.find() %} 
     "<a href='{{ entry.url }}'>{{ entry.title }}</a>", 
    {% endfor %} 
    ]; 
    $("#search-results-general").autocomplete({ 
    source: availableTags 
    }); 
} 
); 
</script> 

Целью этого является, чтобы прут генерировать строки кода яваскрипта. Обратите внимание, что вам, вероятно, потребуется устранить уязвимости XSS в приведенном выше.

+0

Thanks! This got me a bit cleaner output. Twig is not the problem here, and works fine. An variable in jQeury and/or Javascript, will not output html. Only as plain text. So if i want to output the , она буквально выводит в html-файл. – SeeklesBodil

+0

Предполагая, что у вас есть html как обычный текст в переменной js, вы можете сделать '$ (" # containerId "). Append (htmlvar);' eg '$ (" body "). Append (availableTags);' в js –

+0

Привет, это работает! Большое спасибо! – SeeklesBodil

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