Передача html тегов аргументов в шаблоне django в функцию javascript - PullRequest
0 голосов
/ 25 марта 2020

Я хочу передать HTML строку в качестве аргумента в javascript, в django шаблоне. Вот оно: у меня есть куча ссылок, которые они есть в моей базе данных. Я могу получить доступ к этим ссылкам через {% для ссылки в ссылках%} {{link}} {% endfor%} в моем шаблоне django. например, я могу получить доступ к определенному имени ссылки с помощью {{link.name}} , но у меня также есть содержимое, указанное для каждой ссылки; как {{ link.content }}.

проблема в том, в моем шаблоне у меня есть навигация по боковой панели, которая содержит несколько URL-адресов ссылок, и я хочу отображать содержимое ссылки, на которую нажимали, на этой странице. для этого я написал javascript функцию с именем display:

<script>
        function display(str){
                   document.getElementById('cont').innerHTML = str:                     
                      }
</script>

, которая будет иметь доступ к:

<div id="cont"> </div>

здесь:

<a class="nav-link active" href="{{ link.link }}" onclick="display('{{ link.content }}')">{{ link.name }}</a>

в Код выше, функция отображения не работает. Я имею в виду, когда я нажимаю на ссылку в боковой панели, она не показывает никакого контента, буквально ничего. но для теста, когда я изменил аргумент отображения {{link.content}} на что-то еще, например '<h1>hello<h1>', это сработало. ps: содержимое моей ссылки является встроенным html тегами вроде: '<h1><strong>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp' и обратите внимание, что я поставил свой <script> ... внизу <body>. Я буду очень благодарен за любую помощь и руководства.

Ответы [ 2 ]

0 голосов
/ 25 марта 2020
onclick="display('{{ link.content }}')"

не заключайте его в одинарные кавычки при вставке link.content

используйте:

onclick="display({{ link.content }})"
0 голосов
/ 25 марта 2020

Во-первых, не могли бы вы проверить, не является ли ваш {{link.content}} пустым. Кроме того, попробуйте поставить тег script сверху.

...