2010-02-20 16 views
7

Tengo una página en mi sitio web a la que llamo usando una llamada jQuery ajax. Se carga en un div. Pero cada vez que la página está cargada, pierde el snytax resaltando que debería mostrarse. Ej:Javascript Sintaxisaluminación perdida cuando se realiza una llamada AJAX

<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> 

Se trabaja sobre la carga de la página inicial si tengo algo en awesomeo pero si una página se carga a través de AJAX en el div, la sintaxis desaparece.

EDIT: El siguiente es el código que se encuentra en el encabezado:

<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> 

Esto es de: http://alexgorbatchev.com/wiki/SyntaxHighlighter Eso es todo lo que se utiliza para el resaltado de sintaxis ... Sugerencias?

+0

si puede explicar amablemente qué hace su resaltador de sintaxis y cómo lo hace, sería útil. Por ejemplo, ¿tienes un archivo CSS? usas $ (document) .read() o onload() para cambiar el contenido div o sus estilos? – e4c5

Respuesta

4

lo descubrió: Adición

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

en la página de ser llamadas obras.

+0

+1 ¡Gracias por esto! – trgraglia

1

su sintaxis de alto rendimiento probablemente tenga una función vinculada a document.onload. Necesitarás encontrar esa función y volver a llamarla.

0

¿Cómo se llama a la función de resaltado de sintaxis? Si se activa el resaltado de sintaxis en un evento body onload(), obviamente no funcionará después de una llamada AJAX porque el cuerpo ya está cargado.

0

Cuando reciba la respuesta ajax, escriba este código allí también para volver a diseñar el código.

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