Foros del Web » Programando para Internet » Javascript »

Error en Internet Explorer

Estas en el tema de Error en Internet Explorer en el foro de Javascript en Foros del Web. Hola, foreros!: Me da un error algo extraño en una funcion que tengo. El error creo que tambien hace que la barra de desplazamiento se ...
  #1 (permalink)  
Antiguo 10/10/2008, 09:40
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Error en Internet Explorer

Hola, foreros!:

Me da un error algo extraño en una funcion que tengo. El error creo que tambien hace que la barra de desplazamiento se comporte algo mal. Se que no estoy siendo muy determinista, pero estoy trabajando con un codigo de 1200 lineas y me estoy volviendo loco, jeje. Mirar la funcion es:

Código PHP:
function selectmouse(e
    {
         var 
fobj       nn6 e.target event.srcElement;
          var 
topelement nn6 "HTML" "BODY";

          while (
fobj.tagName != topelement && fobj.className != "dragme")
              {
                    
fobj nn6 fobj.parentNode fobj.parentElement;
              }

          if (
fobj.className=="dragme")
              {
                   
isdrag true;
                    
dobj fobj;
                    
tx parseInt(dobj.style.left+0+'px');
                    
nn6 e.clientX event.clientX;
                    
document.onmousemove=movemouse;
                return 
false;
              }
    } 
Solo me ocurre en IE 6. Y me dice: 'Se requiere un objeto'.

¿Sabeis por que?
  #2 (permalink)  
Antiguo 10/10/2008, 09:54
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en Internet Explorer

Podrías señalar en qué línea te dice que da el error?
  #3 (permalink)  
Antiguo 10/10/2008, 09:58
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Error en Internet Explorer

¿No debería ser e.srcElement en vez de event.srcElement? .

EDITO: Haciendo algunas pruebas para IE da igual. Así que realmente habría que saber la línea en la que da el error.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 10/10/2008, 10:31
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: Error en Internet Explorer

Hola!

El error me lo da en la linea de "while (fobj.tagName != topelement && fobj.className != "dragme")"

Pero bastante raro, jeje... por que he comprobado que el error se inicia al pulsar la barra de desplazamiento.

Por ultimo he probado a eliminar:

Código PHP:
while (fobj.tagName != topelement && fobj.className != "dragme"
              { 
                    
fobj nn6 fobj.parentNode fobj.parentElement
              } 
Y la funcion funciona mejor que nunca... ... asi que no se para que era ese while... pues la funcion la obtuve de no me acuerdo que web... jeje... asi que me quedare con las ganas de saber por que no iva... jeje.

Lo importante es que funciona en todos los navegadores. Es una pasada esto de tener que comprobar en 5 navegadores todo el rato.

Bueno. Muchas gracias a los dos...
  #5 (permalink)  
Antiguo 10/10/2008, 17:25
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error en Internet Explorer

David, no, está "bien" (entre comillas pero está bien) event. Entiendo que nn6 es Netscape Navigator 6 o más. Así que lo que hace es si es NN6, entonces recibo e, pero si no supongo que es IExplore y utilizo el objeto event.

salbatore, no hace falta que te quedes sin saber qué hace ese while. Lo que hace es relativamente sencillo. Cuando salta el evento de arrastrado del ratón lo primero que hace es meter en fobj el elemento/objeto donde se ha originado el evento. Pero puede que se trate de un elemento interior al elemento que queremos realmente arrastrar. Entonces lo que hace ese while es ir subiendo por la jerarquía del DOM buscando el objeto contenedor que tiene por clase "dragme".

No sé si quitar ese bucle por las buenas es una solución pero si no te da problemas, pues adelante.
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 07:23.