2010-02-20 84 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();