С помощью syntaxHighlighter вы не можете выделять произвольные элементы на странице, поэтому вместо этого мы будем придерживаться метода script
.
Сначала присвойте сценарию и тегу привязки id
, например
<a href="#" id="show_code">Show Code</a>
<script type="syntaxhighlighter" class="brush: js" id="highlighted"></script>
Затем используйте это для загрузки содержимого, когда пользователь нажимает на ссылку
$('#show_code').click(function(){
$.get('euler/_48.py', function(data){
$('#highlighted').html('<![CDATA[' + data + ']]>');
SyntaxHighligher.highlight();
});
});
Помните, что обычный метод использования syntexhighlighter.js не будет работать здесь, потому что функция SyntaxHighlighter.all()
только связывает функцию highlight()
с событием onload
, поэтому вам придется вызывать эту функцию каждый раз, когда страницаобновлений, добавляя вызов к функции SyntaxHighligher.highlight()
каждый раз, когда вы обновляете страницу.
В качестве альтернативы я бы обычно рекомендовал метод pre
.Это почти то же самое, что и выше, но вместо этого мы используем элемент pre
и используем функцию text()
jQuery для правильного выполнения экранирования.Использование элемента pre
:
<code><pre class="brush: js" id="highlighted">
С этим фрагментом Javascript
$.get('euler/_48.py', function(data){
$('#highlighted').text(data);
SyntaxHighligher.highlight();
});