Foros del Web » Programando para Internet » Jquery »

PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Estas en el tema de PROBLEMA JQUERY LOAD--no carga script de la segunda pagina en el foro de Jquery en Foros del Web. Hola, antes que nada deciros que soy novato en js, espero hacerme entender con esta pregunta, tengo un problema con una pagina "a.php" que "carga" ...
  #1 (permalink)  
Antiguo 13/10/2009, 02:15
 
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 1
PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Hola, antes que nada deciros que soy novato en js, espero hacerme entender con esta pregunta, tengo un problema con una pagina "a.php" que "carga" una pagina nueva "b.php" dentro de ella utilizando para esto la función load de jquery.

La página "b" contiene un script también de jquery que permite que un menú tenga un scroll personalizado de jscrollpane.

Al probar las páginas independientemente todo funciona ok, pero al cargar la pagina "b" dentro de la página "a", no reconoce o no lee o no entiende el script que trae la página "b" y que crea el scroll del menu.

He intentado copiar el mismo script en ambas páginas para ver si funcionaba pero nada. copio parte del script por si alguien me puede dar una luz.
gracias.

SCRIPT DE LA PAGINA "b"

<script type="text/javascript">

$(document).ready(function () {
// this initialises the demo scollpanes on the page.


$('#menufotos').jScrollPane({dragMaxHeight:75});

});



</script>

SCRIPT DE LA PAGINA "a"


<script type="text/javascript">

$(document).ready(function () {

$(document).ready(function () {
// this initialises the demo scollpanes on the page.

$("#contenedormenu a").each(function(){
var href = $(this).attr("href");
$(this).click(function(){
$("#contenido").hide().load(href).fadeIn("slow") ; //Le damos efecto
$(this).attr({ href: "#"});
});
});
</script>
  #2 (permalink)  
Antiguo 13/10/2009, 07:48
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Antes que nada, tener dos veces document.ready no esta ok para el documento a:

Cita:
$(document).ready(function () {

$(document).ready(function () {
En cuanto a traer scripts por ajax, esta bien, pero te conviene tener la libreria declarada ya en el documento a. Luego, desde b haces la llama tal como la haces.

Te sugiero leas el tuto de Cristalab sobre Ajax en jQUery. Vos estas usando lo minimo, que es load, pero existen metodos mas potentes o mas completos. Especificamente, fijate en "dataType", que es en donde se le dice al ajax que tipo de datos hay que traer (javascript, xml, html, etc).

Esto segundo esta bueno tenerlo como metodo alternativo a load, pero en si, teniendo todas las librerias en la pagina principal evitas el problema que tenes.
  #3 (permalink)  
Antiguo 13/10/2009, 09:12
 
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Hol mayid, gracias por tu respuesta, lo voy a intentar, lo de declarar todas las librerias en la pagina principal no lo tengo muy claro, si te refieres a hacer el llamado en el head a la ruta donde están todos los scripts ,eso si lo tengo en las dos paginas, algo así:

<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>

En todo caso voy a probar lo que dices de ajax pues a lo mejor por ese camino lo logro.
gracias de nuevo.
  #4 (permalink)  
Antiguo 13/10/2009, 10:34
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Me refiero a eso mismo, pero no a la inclusion de jQuery dos veces, sino a la inclusion de tu pugin:

Cita:
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="scripts/jsscroll.js"></script>
... en la pagina principal, no en b.
  #5 (permalink)  
Antiguo 15/10/2009, 16:12
 
Fecha de Ingreso: abril-2008
Mensajes: 88
Antigüedad: 16 años
Puntos: 5
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

tengo el mismo problema pero dentro de la función load mando a llamar un dialogo, pero no se ejecuta, al inicio le coloque una alert para saber si entra a load y efectivamente, no se si es factible hacer esto o existe alguna otra manera de hacer esto.

Gracias.

Última edición por juanjoseab; 15/10/2009 a las 16:15 Razón: falta de ortografia
  #6 (permalink)  
Antiguo 17/10/2009, 12:40
 
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 1
Problema jquery load--solucionado .....

Bueno pues si hay alguien a quién le sirva de algo les cuento que hice más o menos lo que me dijo mayid, lo que he hecho es crear un archivo del tipo miarchivo.js, con el script de la página "b", luego lo llamo al inicio de los scripts desde la página "a" de la siguiente forma:

$.getScript("scripts/miarchivo.js");

y listo... al cargar la segunda página desde la primera funciona ok, debo decir que antes funcionaba correctamente en Internet Explorer pero no en otros navegadores, para ser más exacto en opera y firefox, pero con este llamado funciona en los 3 correctamente.
gracias por la ayuda.
  #7 (permalink)  
Antiguo 19/10/2009, 05:40
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Cita:
$.getScript("scripts/miarchivo.js");
No conocía esto. Yo siempre uso:

<script type="text/javascript" src="scripts/jsscroll.js"></script>

Pero imagino que lo tuyo carga el script solo si hay una pagina traida por ajax que lo tiene que usar.
  #8 (permalink)  
Antiguo 31/03/2010, 12:54
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

He leido lo que han puesto en este foro y me está pasando algo similar pero no puede solucionarlo, tal ves fue que no entendí bien. Espero me puedan ayudar.
Tengo una pagina principal y dentro de ella cargo otra pagina mediante la función load() asi:
$(document).ready(function() {
$('#list_product').load('uno.htm');
});

list_product es un div de la página principal donde quiero que se me carge la otra pagina(uno.htm).
Ahora bien dentro de uno.htm quiero que se me ejecute un código javascript y pongo entonces en esa página
<script language="javascript" type="text/javascript">
alert('HOLA!!!');
</script>
El contenido de la página uno.htm si se carga pero el mensaje de alerta me funciona bien en los navegadores IE8, Firefox y Opera, pero cuando lo pruebo en Chrome no me sale el mensaje de alerta.
He estado buscando sobre el tema pero no he encontrado nada, gracias de ante mano.
  #9 (permalink)  
Antiguo 31/03/2010, 18:02
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Cita:
<script language="javascript" type="text/javascript">
alert('HOLA!!!');
</script>
Nunca probe esto en Chrome, pero a veces lo uso tambien. Será cuestion de chequear si realmente se puede ejecutar codigo desde una pagina traida por ajax así, que sea crossbrowser.

Solo una duda: tu segunda pagina tiene etiquetas head y body?
  #10 (permalink)  
Antiguo 07/05/2010, 12:42
 
Fecha de Ingreso: febrero-2004
Mensajes: 31
Antigüedad: 20 años, 2 meses
Puntos: 1
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Yo también he tenido este mismo problema.
Al cargar asíncronamente una página B, que tenía que ejecutar funciones en javascript estas no funcionaban correctamente.

Si añadía el código javascript sobre la página B funcionaba en Firefox, pero no así en Explorer.

Despues de estar horas buscando una solución he encontrado algo que parece que funciona y tiene lógica.. estos son los códigos:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Cargador de B</title>
  5. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
  6. <script type="text/javascript" src="js/a.js"></script>
  7. </head>
  8.  
  9. <div><a href="#" id="cargarb">Pincha para cargar as&iacute;ncronamente la  p&aacute;gina B</a></div>
  10. <div id="destinob"></div>
  11. </body>
  12. </html>

Este código nos carga la pagina b.php sobre la capa "destinob"
La función que realiza esta carga está en "a.js"

Código Javascript:
Ver original
  1. var $j = jQuery.noConflict();
  2. $j(document).ready(function(){
  3.  
  4.     $j("a#cargarb").click( function()
  5.                             {
  6.                                 $j.ajax(
  7.                                     {
  8.                                         url:'b.php',
  9.                                         success: function(resultado)
  10.                                                     {
  11.                                                         $j('#destinob').html(resultado);
  12.                                                         $j.getScript('js/b.js');
  13.                                                     }
  14.                                     });
  15.  
  16.                                
  17.                                 return false;
  18.                             }
  19.                         );
  20.  
  21.  
  22. });

Lo primero que hace al clickar en el enlace es cargar la página correspondiente, "b.php". Esto lo hago con $.ajax, para así controlar cuando se ha efectuaco la carga.. mediante success hago visible la capa y justo despues cargo el script que necesita la página B para funcionar.
Si cargo el script "b.js" antes que la página que estoy cargando, b.php, el script no funciona en b.php. Los scripts deben cargarse una vez están listas las páginas cargadas.


Código HTML:
Ver original
  1. <div id="paginab">Usted ha cargado  la p&aacute;gina B as&iacute;ncronamente mediante ajax</div>

Y este es el script que necesita:

Código Javascript:
Ver original
  1. var $j = jQuery.noConflict();
  2. $j(document).ready(function(){
  3.     window.alert("Acaba de cargar asincronamente el archivo b.js");
  4.     $j("#paginab").hover(
  5.                         function()
  6.                             {
  7.                                 $j(this).css('color', '#ff6600');
  8.                             },
  9.                         function()
  10.                             {
  11.                                 $j(this).css('color', '#000000');
  12.                             }
  13.                         );
  14.  
  15. });

El código es muy sencillo, es solo a modo de ejemplo y he comprobado que funciona en todos los navegadores que he probado, Firefox, Explorer 7, Chorme y Safari.

Había probado otras cosas que he encontrado en la Web, pero no llegaban a funcionar en todos los navegadores por igual.

Había probado el escribir directamente el script en la página a cargar B, en FIrefox esto funcionaba, pero no en explorer, que no ejecutaba el script.

Creo que el detalle está en cargar los scripts una vez que la página que los va a usar está cargada, no antes.

Cualquier observación sobre este problema y a esta solución será bien recibida

Última edición por ukix; 07/05/2010 a las 13:02
  #11 (permalink)  
Antiguo 07/05/2010, 17:24
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Buen aporte. Yo hace un tiempo empecé a incluir scripts en el body de la segunda pagina, pero no sabía que hubiera problemas en algunos navegadores. Tendré que retomar esos proyectos y chequearlos.
  #12 (permalink)  
Antiguo 29/10/2010, 14:10
 
Fecha de Ingreso: julio-2009
Mensajes: 2
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

vaya pues a mi me sirvio bastante la ayuda puesta en este foro, en mi caso el truco era agregar la siguiente linea:

Código:
$.getScript('js/b.js');
Porque hay que recordar que una vez que la pagina se carga completamente, se deben cargar los scripts...

gracias ..
  #13 (permalink)  
Antiguo 12/04/2011, 17:15
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Hola a todos, yo utilice el ejemplo propuesto por ukix, pero para validar un formulario con el plugin de validación de jquery.

Lo hice como ukix pero tengo un problema, me funcion en firefox y en chrome. Pero no me funciona en ninguna versión del internet explorer.

Pongo mis archivos para ver en que me pueden ayudar.

index.html

Código HTML:
<!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=iso-8859-1" />
<title>Cargador de B</title>
<script type="text/javascript" src="jquery_min.js"></script>
<script type="text/javascript" src="jquery.validate.min.js"></script>
<script type="text/javascript" src="js/a.js"></script>
</head>
 
<body>
<div><a href="#" id="cargarb">Pincha para cargar as&iacute;ncronamente la  p&aacute;gina B</a></div>
<div id="destinob"></div>
</body>
</html> 
a.js
Código:
var $j = jQuery.noConflict();
$j(document).ready(function(){

   $j("a#cargarb").click( function()
   {
      $j.ajax(
      {
        url:'b.php',
        success: function(resultado)
        {
          $j('#destinob').html(resultado);
          $j.getScript('js/b.js');
    }
 });
 return false;
 }
 );
});
b.php
Código PHP:
<form class="regForm" id="login_form" name="form1" method="post" action="">
  <
fieldset>
  <
legend>Formulario de Ingreso</legend>
  <
p>
    <
label for="reg_email">Email:</label>
    <
input type="text" name="reg_email" id="reg_email">
  </
p>
  <
p>
    <
label for="reg_password">Clave</label>
    <
input type="password" name="reg_password" id="reg_password">
  </
p>
  <
p>
    <
label for="reg_sesion">No cerrar sesi&oacute;n</label>
    <
input type="checkbox" name="reg_sesion" id="reg_sesion">
  </
p>
  </
fieldset>  
  <
p>
    <
input type="submit" name="reg_submit" id="reg_submit" value="Ingresar">
    <
input type="reset" name="reg_clean" id="reg_clean" value="Limpiar">
  </
p>
  
</
form
b.js

Código:
$j("#login_form").validate({
		rules:{
			reg_email: {
				required: true,
				email: true
			},				
			reg_password:{
				required: true
			}
		},
		messages:{
			reg_email: {
				required: "Ingrese su Email",
				email: "Ingrese un email válido"
			},				
			reg_password:{
				required: "Escriba una contraseña"
			}
		}
});
  #14 (permalink)  
Antiguo 06/05/2011, 15:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 11
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Necesito ayuda por favor lo que estoy tratando de hacer es que con el metodo .load() de javascript me cargue la pagina php en un div, la pagina me carga bien pero no me carga los scripts. osea la pagina "pagina.php" tiene codigo con javascript y jquery, me carga todo el contenido pero no los script.

ejemplo de codigo:

<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#enlace").click(function(event){
$('#contenido').load('pagina.php #main');
});
});
</script>
este ejemplo carga la pagina dentro del div perfecto pero el problema es que pagina.php tiene codigo javascript y jquery pero no los carga osea no puedo enviar formularios ni abrir ventanas al estilo facebook dentro del div contenido y si pagina.php la abro en una pestaña aparte en el navegador todo funciona bien.
  #15 (permalink)  
Antiguo 28/03/2014, 08:54
 
Fecha de Ingreso: marzo-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
Respuesta: PROBLEMA JQUERY LOAD--no carga script de la segunda pagina

Yo tengo un problema parecido, lo que pasa es que al momento de cargar la pagina b dentro de la pagina a si me reconoce el codigo javascript púro, pero lo que no me reconoce son las librerias de JQuery y AngularJs alguna idea ....???
intente con getScript(); .Load(); .ajax();
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:35.