Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2009, 16:55
Avatar de juanolo
juanolo
 
Fecha de Ingreso: abril-2008
Mensajes: 251
Antigüedad: 16 años, 7 meses
Puntos: 5
Pregunta JQUERY - Al cargar un archivo en un DIV, no me funciona otro codigo JS

Utilizo "SyntaxHighlighter" para dar formato a los codigos que muestro en la pagina, que estan dentro de un DIV contenedor.
Utilizo "jquery-1.3.2.min.js" para cargar paginas externas dentro de ese DIV contenedor y asi no recargar toda la pagina.

Si abro index.php nada mas iniciar, cargo un archivo externo en el DIV contenedor mediante un <?php include ("principal.php");?> y en ese archivo externo tengo un codigo con "SyntaxHighlighter" el codigo me lo formatea bien.
Si una vez cargado el index.php, pincho en un enlace del menu izquierdo que tiene mi web para que cargue otro archivo externo en el DIV contenedor (con jquery para no recargar toda la pagina) cuando carga el nuevo archivo externo en el DIV contenedor, aunque tenga un texto con "SyntaxHighlighter", el texto no lo formatea.

RESUMIENDO...
Cuando carga la pagina y el DIV con un include de php lo hace bien.
Pero cuando actualizo el DIV contenedor con jquery para que no me recargue toda la web, el nuevo contenido no lo colorea.


- ¿Por que solo funciona si recargo toda la web?
- ¿No podria formatear codigo cargando solo el DIV del contenido de la web?
- ¿Hay alguna manera para indicarle a SyntaxHighlighter que la web a cambiado y que debe formatear el nuevo contenido?
(Es que me da la sensacion de que no lo formatea por que no sabe que hay nuevo contenido en ese DIV, o no se que pensar.)

O si no...
- ¿Otra forma mas sencilla de recargar partes de una web sin recargar toda la pagina y que no falle ningun codigo del Frameworks SyntaxHighlighter?

Bueno y aqui parte del codigo por si aclara algo....

En la cabecera del index cargo los JS:
Código html:
Ver original
  1. <link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter/shCore.css" />
  2.     <link type="text/css" rel="stylesheet" href="css/SyntaxHighlighter/shThemeDefault.css" />
  3. <!--Scripts-->    
  4.     <script type="text/javascript" src="javascript/SyntaxHighlighter/shCore.js"></script>
  5.     <script type="text/javascript" src="javascript/SyntaxHighlighter/shBrushXml.js"></script>
  6.     <script type="text/javascript">
  7.         SyntaxHighlighter.all();
  8.     </script>
  9.     <script language="javascript" src="javascript/jquery/jquery-1.3.2.min.js"></script>
  10.     <script language="javascript" src="javascript/recargar.js"></script>

En recargar.js" tengo una funcion que llama a otra funcion de jquery para que me recargue el DIV contenedor sin cargar el resto de la web pasandole un parametro llamado "pagina" que es el archivo externo que quiero cargar:
Código HTML:
function recargar(pagina){	
	/// Invocamos a nuestro script PHP
	$.post(pagina, function(data){
	/// Ponemos la respuesta de nuestro script en el DIV recargado
	$("#contenido").html(data);
	});			
}
Esto seria un enlace del menu que uso para cargar un archivo externo en el contenedor DIV sin recargar toda la pagina, a la funcion recargar, le paso como parametro el archivo externo que quiero que cargue en el DIV junto con un ancla:
Código html:
Ver original
  1. <li><a href="#" onclick="javascript:recargar('introduccion.php#introduccion1');">Lenguajes de tipo cliente</a></li>

Para dar formato al texto, simplemente pongo esta linea en el codigo que quiero colorear en cada archivo externo:
Código html:
Ver original
  1. <pre class="brush: html;">
  2.     alert('Hola mundo');
  3. </pre>

Última edición por juanolo; 26/04/2009 a las 05:57