JavaScript - diferencias entre firefox e IE

   
Vista:

diferencias entre firefox e IE

Publicado por Lord Sairtanikvs (20 intervenciones) el 17/10/2007 12:59:59
Buenos dias.
El caso es que tengo un problema con un codigo, el cual funciona perfectamente en firefox, pero que no lo hace en internet explorer.
Llevo ya unas horas buscando la solucion, pero no me sale nada.
El codigo que digo es el siguiente:

function abrirVentana(){
//el this que recibe no hace referencia al objeto pulsado ni al document
var tree=this.parentNode.parentNode.id;
tree=tree.substring(7);
var oNode=goPPage.getTree(tree).getNode(this.id);
var action=oNode.getAction();
if(tree=="idioma")
window.location="index.php?"+action+"&Idioma="+this.id.substring(this.id.length-2);
else
window.location="index.php?"+action;
}

Tengo creado un arbol, en javascript, que lo que me hace es anidar capas, y las mas interiores, son las que funcionan en este caso como enlaces (en otros casos les asigno otras funciones). En esas capas interiores tengo una funcion generica, redireccionada a esta.
La cuestion, es que al pulsar una de esas capas, tanto en firefox, como en IE, entra en esta funcion. La diferencia es que en firefox, dentro de la funcion, el this toma el rol del objeto pulsado, con lo que puedo acceder a los nodos padre y a su informacion. Sin embargo, en IE, el this no tiene nada que ver con el objeto, por lo que no consigo acceder a los datos que me hacen falta.

Por cierto, la asignacion a esta funcion seria asi:
oMenu.nodeOnClick=abrirVentana;

Previamente en el objeto, al crearse, cada nodo recibe esa funcion:
oNode.onclick=nodeOnClick;

Bueno, a ver si me podeis echar una mano, que yo ya no se por donde tirar.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:diferencias entre firefox e IE

Publicado por Lord Sairtanikvs (20 intervenciones) el 17/10/2007 17:13:55
Bueno, para el que le interese, finalmente encontre una solución. Aqui os dejo la funcion tal y como me quedó.

function abrirVentana(){
if(navigator.appName=="Microsoft Internet Explorer"){
var tree=event.srcElement.parentNode.parentNode.id;
var sId=event.srcElement.id;
}else{
var tree=this.parentNode.parentNode.id;
var sId=this.id;
}
tree=tree.substring(7);
var obNode=goPPage.getTree(tree).getNode(sId);
var action=obNode.getAction();
if(tree=="idioma")
window.location="index.php?"+action+"&Idioma="+sId.substring(sId.length-2);
else
window.location="index.php?"+action;
}

Espero que os sirva, y que podais aprovechar el tiempo que os ahorre.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar