Синтаксическая подсветка Javascript потеряна при выполнении вызова AJAX - PullRequest
7 голосов
/ 20 февраля 2010

У меня на сайте есть страница, на которую я звоню, используя jQuery ajax call. Он загружается в div. Но всякий раз, когда я загружаю страницу, она теряет подсветку snytax, которую она должна отображать. Пример:

<html>
<head>
<!-- syntax highlighting script -->
<script type="text/javascript" src="syntaxhighlighter.js"></script>
</head>
<body>
<!-- div that displays ajax page cal -->
<div id="awesomeo">

</div>
</body>
</html>

Это работает при начальной загрузке страницы, если у меня есть что-то в awesomeo, но если страница загружается через div в AJAX, синтаксис исчезает.

EDIT: Ниже приведен код, который находится в заголовке:

<script type="text/javascript" src="/scripts/shCore.js"></script>
<script type="text/javascript" src="/scripts/shBrushBash.js"></script>
<script type="text/javascript" src="/scripts/shBrushCpp.js"></script>
<script type="text/javascript" src="/scripts/shBrushCSharp.js"></script>
<script type="text/javascript" src="/scripts/shBrushCss.js"></script>
<script type="text/javascript" src="/scripts/shBrushJava.js"></script>
<script type="text/javascript" src="/scripts/shBrushJScript.js"></script>
<script type="text/javascript" src="/scripts/shBrushPhp.js"></script>
<script type="text/javascript" src="/scripts/shBrushPlain.js"></script>

<link type="text/css" rel="stylesheet" href="/styles/shCore.css"/>
<link type="text/css" rel="stylesheet" href="/styles/shThemeDefault.css"/>

<script type="text/javascript">
    SyntaxHighlighter.config.clipboardSwf = '/scripts/clipboard.swf';
    SyntaxHighlighter.all();
</script>

Это от: http://alexgorbatchev.com/wiki/SyntaxHighlighter Это все, что используется для подсветки синтаксиса ... Предложения?

Ответы [ 4 ]

4 голосов
/ 20 февраля 2010

разобрался: Добавление

<script type="text/javascript">
    SyntaxHighlighter.highlight();
</script>

на вызываемой странице работает.

1 голос
/ 20 февраля 2010

ваш синтаксис хайлайтер, вероятно, имеет функцию, привязанную к document.onload. Вам нужно найти эту функцию и вызвать ее снова.

0 голосов
/ 20 февраля 2010

Когда вы получите ответ ajax, напишите этот код и там, чтобы изменить его стиль.

// your ajax respone code here and after that:
SyntaxHighlighter.config.clipboardSwf = '/scripts/clipboard.swf';
SyntaxHighlighter.all();
0 голосов
/ 20 февраля 2010

Как называется ваша функция подсветки синтаксиса? Если подсветка синтаксиса запускается для события body onload (), оно, очевидно, не будет работать после вызова AJAX, поскольку тело уже загружено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...