Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/10/2008, 12:21
santisantos
 
Fecha de Ingreso: febrero-2007
Mensajes: 16
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Cargar js después de un llamado AJAX con JQUERY

Muchas gracias por contestar tan rápido.

Mira te pongo todos los códigos qu estoy utilizando vale?.
De momento la funcion ajax que he estado utilizando para cargar las páginas no tiene jquery. Te muestro todo y me dices como podria hacerlo con jQuery ya que utilizo este framework para efectos y demas, me gustaria poder hacerlo todo con Jquery.

Este es el codigo que utilizo para cargar las paginas (se llama codigo.js):

Código PHP:
function SetContainerHTML(id,html,processScripts){
mydiv document.getElementById(id);
mydiv.innerHTML html;
if(
processScripts!=false){
var 
elementos mydiv.getElementsByTagName('script');
for(
i=0;i<elementos.length;i++) {
var 
elemento elementos];
nuevoScript document.createElement('script');
nuevoScript.text elemento.innerHTML
nuevoScript.type 'text/javascript';
if(
elemento.src!=null && elemento.src.length>0)
nuevoScript.src elemento.src;
elemento.parentNode.replaceChild(nuevoScript,elemento);
}
}
}

function 
llamarasincrono (urlid_contenedor)
{
    var 
pagina_requerida false;
    if (
window.XMLHttpRequest)
    {
        
// Si es Mozilla, Safari etc
        
pagina_requerida = new XMLHttpRequest ();
    } else if (
window.ActiveXObject)
    {
        
// pero si es IE
        
try 
        {
            
pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (
e)
        {
            
// en caso que sea una versión antigua
            
try
            {
                
pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (
e)
            {
            }
        }
    } 
    else
    return 
false;
    
pagina_requerida.onreadystatechange = function ()
    {
        
// función de respuesta
        
cargarpagina (pagina_requeridaid_contenedor);
    }
    
pagina_requerida.open ('GET'urltrue); // asignamos los métodos open y send
    
pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requeridaid_contenedor)
{
    if (
pagina_requerida.readyState == && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
     
SetContainerHTML(id_contenedorpagina_requerida.responseTexttrue);

El problema que tengo esque no me carga todos los javascripts. Estoy utilizando Jquery.Sirf para sustituir los textos, titulares y demas. en la pagina principal si funciona (titular que pone empresa si lo sustituye) pero en las paginas que cargo con el ajax no.(titular de quienes somos y de metodos de trabajo no se sustituyen) Sin embargo estoy utilizando un script alerta.js, que simplemente hace un alert y eso si que lo carga...

Hice un pequeño intento con Jquery y cree una funcion para cargar las paginas con ajax:
Código PHP:
<script>
function 
cargar_pagina(capa,url){
capa="#"+capa;
$(
capa).load(url);
}
</script> 
con esta funcion (no veas si reduce codigo...) me ocurria lo mismo. Si me hacia el alert pero, no me cargaba el sirf ni nada mas.

Te pongo el codigo de la pagina principal (empresa.php).

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Editorial Pencil | Empresa</title>

<script type="text/javascript" src="funciones/swfobject.js"></script>
<script type="text/javascript" src="funciones/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="funciones/jquery-1.2.6.js"></script>
<script type="text/javascript" src="funciones/jquery.flash.min.js"></script>
<script type="text/javascript" src="funciones/jquery.sifr.js"></script>
<script type="text/javascript" src="funciones/dynamic_content.js"></script>
<script type="text/javascript" src="funciones/codigo.js"></script>

<link href="estilos/estilos_textos.css" rel="stylesheet" type="text/css" />
<link href="estilos/pie.css" rel="stylesheet" type="text/css" />
<link href="estilos/estilos_capas_empresa.css" rel="stylesheet" type="text/css" />
<!--[if lt IE 7]>

<script defer type="text/javascript" src="javascript/png.js"></script>
<link href="estilos/estilos_capas_empresa_ei.css" rel="stylesheet" type="text/css" />
<link href="estilos/pie_ie.css" rel="stylesheet" type="text/css" />
<![endif]-->
</head>
<body background="imagenes/mosaico_fondo_web.jpg" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:llamarasincrono('quienes_somos.php','textos_apartados_empresa');">
<map
    id="browser"
 /''name="firefox" 
 /""name="sleipnir_gecko" 
   "name="safari" 
  ""name="konqueror" 
   /name="ie" 
    name="opera" 
    name="lynx" 
> </map>

<script language="Javascript">
if (document.getElementById('browser').getAttribute('name')=="firefox"){
          function animarPeq(){
        $("#intro_juegos").height('229px');
        }
        function animarGrand(){
        $("#intro_juegos").height('454px');
        }
}
else  {
          function animarPeq(){
        $("#intro_juegos").animate({height: "229px"},800,"easeOutExpo");
        }
        function animarGrand(){
        $("#intro_juegos").animate({height: "454px"},800,"easeOutExpo");
        }
}
</script> 

<div id="pagina">
      
    <div id="navegador">
      <img src="imagenes/cabecera.jpg" width="976" height="156" />    </div>
  
  <div id="intro_juegos">    
       <script type="text/javascript">
         var so = new SWFObject("swf/intro.swf", "loader_intro", "100%", "100%", "9");
         //so.addVariable("flashVarText", "this is passed in via FlashVars for example only");
         so.addParam("quality", "high");
         so.addParam("allowScriptAccess", "always");
         so.write("intro_juegos");
       </script>
  </div>
  
    <div id="apartados">
      
             <div id="empresa_botones">
                 
            <div class="titular" id="titular_empresa">EMPRESA</div>
          
              <div id="apartados_empresa"><a class="enlace1" href="javascript:llamarasincrono('quienes_somos.php','textos_apartados_empresa');">Quienes Somos</a><br />
                <a class="enlace1" href="javascript:llamarasincrono('metodo_de_trabajo.php','textos_apartados_empresa');">Método de Trabajo</a></div>
              
      </div>
            
          <div id="textos_apartados_empresa">
                  
            <div class="titular" id="titular_apartados"></div>
      </div>
          
          <br class="clearfloat">         
  </div>
  <?php include("pie.php");?>
</div>
</body>
</html>
y ahora te pongo el código de la página que cargo con ajax (quienes_somos.php).

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Editorial Pencil Empresa Quienes Somos</title>
<
script type="text/javascript" src="funciones/jquery-1.2.6.js"></script>
<script type="text/javascript" src="funciones/jquery.flash.min.js"></script>
<script type="text/javascript" src="funciones/jquery.sifr.js"></script>
<script type="text/javascript" src="funciones/alerta.js"></script>
<link href="estilos/estilos_capas_empresa.css" rel="stylesheet" type="text/css" />
<link href="estilos/estilos_textos.css" rel="stylesheet" type="text/css" />
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
  <div class="titular" id="titular_apartados">QUIENES SOMOS</div>
<div id="raya"></div>
  <div class="texto_mas_interlineado" id="textos_empresa">Editorial Péncil es una editorial valenciana que inicia su actividad a mediados del 2005.<br />
    Su actividad es la producción, edición, distribución y venta directa de libros técnicos de arquitectura y construcción.<br />
    <br />
    Los usuarios de estas publicaciones son Arquitectos técnicos, Ingenieros, Constructores y Promotores, pero principalmente, Arquitectos y estudiantes de Arquitectura. La calidad de nuestros libros se basa, tanto en el volumen de información de cada proyecto como en el tratamiento de la misma. Este último aspecto es el más valorado por nuestros clientes, y  se ha convertido en  el sello de  la editorial.<br />
    <br />
    Somos la única editorial que trabaja todos los planos que presentamos (plano de situación, alzados, plantas, secciones, detalles constructivos, leyendas) con el mismo método de  trabajo, alcanzando una correcta valoración de línea y una  homogeneidad en toda la publicación.<br />
    <br />
    Además de la edición en castellano, a partir del 2007, los títulos también se editan en Inglés y en poco más de un año se venden en casi todo el mundo.<br />
  </div>
</body>
</html> 
Mira aqui te dejo el ejemplo de como lo tengo para que veas lo que sucede. ok? pq creo que todo esto es un poco lio explicarlo por aquí. (la cabecera de la web y eso no va ademas hay ke hacer que el flash no se escale cuando haces el toggle y tal, bueno solo son pruebas)

http://www.nectarestudio.com/demos/webpencil/empresa.php (no puedo poner el enlace directamente sorry)

Muchisimas gracias.