Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Problema con onload y resize

Estas en el tema de Problema con onload y resize en el foro de Frameworks JS en Foros del Web. Hola, tengo una pagina index.php en la cual cargo un onload y un resize. En la cual va perfectamente, pero luego, segun me voy metiendo ...
  #1 (permalink)  
Antiguo 25/02/2009, 16:32
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Problema con onload y resize

Hola, tengo una pagina index.php en la cual cargo un onload y un resize. En la cual va perfectamente, pero luego, segun me voy metiendo en una seccion u otra, se carga un div, en el cual tambien se debe de cargar un onload y un resize totalmente independientes de los otros. Pero el problema es que no se cargan.. como podria hacerlo?

(si no me he explicado bien, intento explicarlo otra vez).

Gracias.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #2 (permalink)  
Antiguo 25/02/2009, 17:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

Hola mdk,

Si es lo que entiendo no se evalua el onload y javascript necesario, para eso debes de evaluar el Javascript que cargas desde AJAX, revisa en las FAQs para que veas como hacerlo.

Saludos
  #3 (permalink)  
Antiguo 25/02/2009, 17:22
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Problema con onload y resize

Ya las estuve mirando hace rato a ver si veia algo, pero no vi nada... :S dime tu exactamente a que te refieres...

Y mas que el onload me interesa mas el resize...
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #4 (permalink)  
Antiguo 25/02/2009, 19:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

http://www.forosdelweb.com/f77/howto...e-ajax-510438/

Saludos
  #5 (permalink)  
Antiguo 25/02/2009, 23:57
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Ejecutar javascript despues de AJAX

Vale, ese script lo habia visto, pero tengo varias dudas.

Cita:
Ahora bien, para interpretar archivos javascript

Código:
<script type='text/javascript'>alert('algo');</script>
Texto blabla
<script type='text/javascript' src="algo.js"></script>
Otro texto blabla

Se debe hacer.

Código PHP:
var scs=myAjax.responseText.extractScript(); //capturamos los scripts
myDivUoTroLugar.innerHTML=myAjax.responseText
scs.evalScript(); //ahora si, comenzamos a interpretar todo
1ª. El codígo PHP, donde se supone que se debe de poner, ¿en el archivo javascript que tiene las funciones de ajax que cargan el div de la nueva pagina? o ¿en la pagina que se abre dentro del div?

2ª. La línea marcada, se supone que es la que tenemos que cambiar, ¿pero como? Si deseara lanzar un resize o un onload, como el de dentro de las etiquetas "<body onload="function()" resize="function()">" ¿como deberia de hacerlo? es que no lo tengo muy claro.

3ª. Donde se deberia de poner ese código. ¿en la pagína que se abre con el div, justo donde deberia de ir el javascript que queremos lanzar?
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 26/02/2009 a las 00:03
  #6 (permalink)  
Antiguo 26/02/2009, 10:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

Ese código es solamente para evaluar Javascript, no puedes evaluar desde javascript código PHP es imposible.

Por otro lado, esos eventos una vez que evaluas la pagina se deberian de ejecutar, aunque no entiendo si estas trayendo desde AJAX otro <body> por completo entonces tienes un problema a nivel DOM y es por eso que no se ejecuta correctamente ya que ya tienes un <body> activo.

Saludos
  #7 (permalink)  
Antiguo 26/02/2009, 16:36
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Problema con onload y resize

Vale, al final leyendo un hilo del hilo del post que pusiste, di con como ponerlo, pero me volvi loco! jajaja a ver si consigo ahora hacer que funcione el resize ^^
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #8 (permalink)  
Antiguo 26/02/2009, 17:16
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Problema con onload y resize

Vale, ahora me va perfectamente el onload poniendo esto

Código:
<script type="text/javascript">
window.onload = funcion();
</script>
pero el onresize no funciona, como podria hacer para que funcionase, ¿se puede?
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #9 (permalink)  
Antiguo 27/02/2009, 10:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

A lo mejor usando el mismo evento DOM: window.onresize.

Saludos
  #10 (permalink)  
Antiguo 27/02/2009, 10:57
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Problema con onload y resize

Eso probé..

Código:
<script type="text/javascript">
window.onresize = funcion();
</script>
Pero no funciona..
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #11 (permalink)  
Antiguo 27/02/2009, 14:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

Recuerda que para asignar la funcion debes de hacer algo así:
Código javascript:
Ver original
  1. window.onresize = function() {
  2.          // cosas de la funcion
  3. }
  4.  
  5. // o
  6. window.onresize = funcion_de_resize; // ojo que es sin () ya que eso causa que se evalue

Saludos
  #12 (permalink)  
Antiguo 27/02/2009, 17:28
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Si te refieres a poner:

Código JavaScript:
Ver original
  1. <script type="text/javascript">
  2. window.onresize = funcion;
  3. </script>

Tampoco funciona así, es mas, tambien deja de funcionar el onresize de la página principal.

Así que en caso de no poderse usar un onresize, he estado pensando en probar una alternativa. ¿Hay alguna forma de saber si una determinada página cargada con ajax está en un DIV?

Nota: La idea sería, lanzar el onresize desde la página principal, y en la función que lanza ese onresize, comprobar si la página que me interesa (la página que cargo con ajax). está abierta en el div, y si lo está, lanzar la otra función que actua directamente sobre la página hija.

¿Y me permites otra pregunta? (fuera del tema).

GatorV
$this->role('moderador');


¿Eso es normal, no deberia de poner solo "moderador"?.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por GatorV; 27/02/2009 a las 17:36
  #13 (permalink)  
Antiguo 27/02/2009, 17:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

Entonces ocupa la primera opcion guardando el handler de la funcion pasada:
Código javascript:
Ver original
  1. oldOnResize = window.onresize;
  2. window.onresize = function() {
  3.         oldOnResize();
  4.         newResize();
  5. }

Respecto al titulo, lo podemos definir cada moderador.

Saludos
  #14 (permalink)  
Antiguo 27/02/2009, 17:51
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Vale, así funciona genial!

Código:
oldOnResize = window.onresize;
window.onresize = function Prob() {
	oldOnResize();
	Calc();
}
</script>
Solo que lo que marqué, sigue sin ir y ahora no me redimensiona la ventana principal, porque curiosamente, le lanzo un alert a oldOnResize y me muestra el texto que esta normal del código de arriba

(Curioso lo de personalizar el titulo )

Nada, no importa, lo solucioné así:

Código JavaScript:
Ver original
  1. window.onresize = function Prob() {
  2.     Calc();
  3.     LaOtraFuncion();
  4. }

Como se cual es la otra función que se debe de mandar, la he puesto tal cual y va todo perfecto.

Muchas gracias GatorV
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por GatorV; 27/02/2009 a las 19:15
  #15 (permalink)  
Antiguo 27/02/2009, 19:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

Como la funcion debe de ser anonima debes de quitar la parte de Prob para evitar errores en la closure:
Código javascript:
Ver original
  1. oldOnResize = window.onresize;
  2. window.onresize = function() {
  3.     oldOnResize();
  4.     Calc();
  5. }

Saludos
  #16 (permalink)  
Antiguo 28/02/2009, 00:49
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años, 1 mes
Puntos: 11
Respuesta: Problema con onload y resize

Que raro, haciendo eso, ahora me va en IE pero en Firefox no es mas, se me queda el navegador colgado
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #17 (permalink)  
Antiguo 28/02/2009, 14:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con onload y resize

Es probable que el código este causando un loop, te recomiendo usar Firebug para que hagas un trace del Javascript.

Saludos
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




La zona horaria es GMT -6. Ahora son las 22:52.