Foros del Web » Programando para Internet » Javascript »

Problema con window.onload

Estas en el tema de Problema con window.onload en el foro de Javascript en Foros del Web. Hola. Tengo un pequeño problemilla al integrar en mi web dos scripts en javascript y no se muy bien como soluccionarlo. Os explico lo que ...
  #1 (permalink)  
Antiguo 10/07/2008, 10:25
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 10 meses
Puntos: 1
Problema con window.onload

Hola. Tengo un pequeño problemilla al integrar en mi web dos scripts en javascript y no se muy bien como soluccionarlo.

Os explico lo que he logrado averiguar sobre el problema:

El problema ocurre al integrar al mismo tiempo NiftyCube (un script para generar bordes redondeados) y Spaw Editor (un editor WYSIWYG).

Al agregar el editor, no funciona NiftyCube.

Os pongo los dos fragmentos de código donde creo que está el problema.

Primero el de el Spaw Editor:

Código:
// hooks up to window onload event and calls initialization
SpawEditor.prototype.onLoadHookup = function()
{
  var spaw_tmpstr="";
  if (window.onload != null) 
  {
    spaw_tmpstr = window.onload.toString();
    var spaw_i = spaw_tmpstr.indexOf("{") + 2;
    spaw_tmpstr = spaw_tmpstr.substr(spaw_i,spaw_tmpstr.length-spaw_i-2);
  }
  window.onload = new Function(this.name+'_obj.initialize();'+spaw_tmpstr);   
}
Y ahora el de NiftyCube:

Código:
<!-- Script para crear bordes redondeados -->
		window.onload=function(){
		Nifty("div#rbar","bottom");
		Nifty("div#block1","medium");
		//Nifty("li#nav a","medium transparent bottom");
		}
Estoy casi seguro de que está relacionado con el window.onload, pero no se que debo hacer.

Espero que me podais ayudar.

Gracias de antemano.
  #2 (permalink)  
Antiguo 10/07/2008, 10:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Problema con window.onload

Sí, por lo que veo los dos scripts están tratando de colocar una función en window.onload, así que solo uno se va a ejecutar, debes unificar las dos funciones para que las dos se ejecuten...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/07/2008, 00:17
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Problema con window.onload

Cita:
Iniciado por David el Grande Ver Mensaje
Sí, por lo que veo los dos scripts están tratando de colocar una función en window.onload, así que solo uno se va a ejecutar, debes unificar las dos funciones para que las dos se ejecuten...
Gracias David. Pero es que de JavaScript no tengo ni idea. Te importaría decirme como podría hacer eso??

GRACIAS
  #4 (permalink)  
Antiguo 11/07/2008, 08:17
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Problema con window.onload

Bueno, primero dejemos en claro por que pasa el problema. Cuando usas window.onload = algunaFuncion() Solo puedes insertar una función. Es decir que si vuelves a usar window.onload = otraFuncion() estarás reescribiendo el evento onload de window. Eso puede solucionarse de varias maneras y al parecer tu editor de textos esta tratando de encargarse del asunto, pero de una forma muy rara, pero que funciona. Asegúrate de que estés cargando primero el nifty Cube. No debería de haber ningún problema si cargas el nifty cube primero.

Si aun asi no se soluciona el problema intenta modificando el codigo por esto:

Código:
// hooks up to window onload event and calls initialization
SpawEditor.prototype.onLoadHookup = function()
{
  window.onload = function(){
     this.name+'_obj.initialize();
     Nifty("div#rbar","bottom");
     Nifty("div#block1","medium");
     //Nifty("li#nav a","medium transparent bottom");

  }  
}
Pudiera ser que también sea que los objetos estén chocando en algún momento, pero para saber eso con seguridad habría que mirar el código de ambos. Recuerda cargar primero el nifty cube, es decir poner el enlace al js de nifty cube(<script type="text/javascript src="laruta/niftycube.js(o como se llame)"></script>) antes del enlace al js de tu editor de textos.

Saludos.
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 11/07/2008, 16:10
 
Fecha de Ingreso: julio-2008
Mensajes: 19
Antigüedad: 15 años, 10 meses
Puntos: 1
Sonrisa Respuesta: Problema con window.onload

Gracias Buzu. Ya logré soluccionar el problema.

El problema estaba en que Nifty debía cargar antes que el editor, tal y como me dijiste. Escribí una versión reducida del script que fuese al grano y funcionó.

Código:
// hooks up to window onload event and calls initialization
SpawEditor.prototype.onLoadHookup = function()
{
  window.onload = new Function('Nifty("div#rbar","bottom");Nifty("div#block1","medium");'+this.name+'_obj.initialize();');
}

GRACIAS DE NUEVO.

Me llevo una muy buena impresión de este foro.
  #6 (permalink)  
Antiguo 12/07/2008, 11:34
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Problema con window.onload

Me alegro que hayas resuelto el problema y que te lleves una buena impresión del foro. Eso es lo que hace grandes a las comunidades; la experiencia que vives en ellas.
__________________
twitter: @imbuzu
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 12:26.