JavaScript — Highlight.js не работает для эхо-текста из переполнения стека

Я повторяю текст из PHP для загрузки на мою страницу через вызов AJAX на моей странице HTML. Я хочу, чтобы Highlight.js прошел через этот текст и выделил для меня синтаксис. Тем не менее, он не выделяет текст. Когда я делаю это прямо на HTML-странице:

<pre>
<code id=resultDiv style="text-align:right;">
<p> int main() </p>
</code>
</pre>

оно работает. int main () выделено Тем не мение,

echo
"int main()";

или даже

echo "<p> int main() </p>"

к тому же результату
из моего файла PHP на страницу не выделяется.

можно ли это исправить? Почему это происходит?

0

Решение

Если я правильно понял ваш вопрос, вы загружаете контент со страницы PHP с помощью Ajax.

При использовании highlight.js он будет проходить через ваш html и подсвечивать все после события «load», однако ваш Ajax-вызов происходит асинхронно после этого события, что означает, что контент загружается после того, как hightlight.js завершил свою передачу.

highlight.js имеет функция highlightBlock это вызовет проход подсветки кода, в вашем случае это будет выглядеть как следующая строка кода

hljs.highlightBlock(document.getElementById("resultDiv"));

который вы должны будете поставить после ваш контент добавлен в DOM

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]