2010-02-20 16 views
7

我在我的網站上有一個頁面,我正在使用jQuery ajax調用進行調用。它加載在一個div中。但是無論何時加載頁面,它都會丟失snytax突出顯示它應該顯示的內容。例如:AJAX調用時Javascript語法高亮丟失

<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,但如果一個頁面通過AJAX加載到DIV,語法消失。

編輯: 下面是在頭代碼:

<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 這是所有用於語法高亮...建議?

+0

如果您可以解釋您的語法熒光筆的功能以及它如何操作,它會有所幫助。例如,你有一個CSS文件?你使用$(document).read()或onload()來更改div內容或它的樣式嗎? – e4c5 2010-02-20 06:12:30

回答

4

想通了: 被稱爲作品在頁面上添加

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

+0

+1感謝您的支持! – trgraglia 2011-09-07 11:34:00

1

您的syntaxhighlighter可能具有綁定到document.onload的函數。您需要找到該功能並再次調用它。

0

你的語法高亮函數是如何調用的?如果在正文onload()事件上觸發語法高亮,則在AJAX調用之後顯然不起作用,因爲正文已經加載。

0

當您收到ajax響應時,請在此處編寫此代碼以重新設置代碼樣式。

// your ajax respone code here and after that: 
SyntaxHighlighter.config.clipboardSwf = '/scripts/clipboard.swf'; 
SyntaxHighlighter.all();