image
Inicio » Foros » JavaScript

JavaScript

porqué no funciona en internet explorer

Volver al foro | Responder | Añadir nuevo tema


De: rufus
Fecha: 16/06/2008
Mensaje:

Alguien me podía decir porque este script no funciona en internet explorer, sin embargo funciona perfectamente en firefox u opera.
Gracias

var visible;
function hazVisible(id){
if(visible!=null){
visible.setAttribute("class","tablah");
}
visible=document.getElementById(id);
visible.setAttribute("class","tablav");
}


Quizás le interese
De: jbosch(vosk)
Util para: 2 personas

Fecha: 16/06/2008
Mensaje:

no funciona porque en msie tienes que usar 'classname'.

jbosch(vosk)



De: rufus
Util para: 1 personas

Fecha: 17/06/2008
Mensaje:

perdona te refieres en vez de 'class' poner 'classname', es decir así:

function hazVisible(id){
if(visible!=null){
visible.setAttribute("classname","tablah");
}
visible=document.getElementById(id);
visible.setAttribute("classname","tablav");
}

porque de ser así tampoco funciona.
Gracias por contestar.



De: jbosch(vosk)
Util para: 0 personas

Fecha: 17/06/2008
Mensaje:

suponia que 'visible' era un puntero al elemento al que querias asignar el atributo; si 'visible' no hace referencia a ningun elemento puedes poner lo que quieras que tampoco te va a funcionar.

var MSIE=(document.all)?true:false;
if(MSIE)
{
elemento.setAtrribute("classname","nombreclase");
}
else
{
elemento.setAtrribute("class","nombreclase");
}

jbosch(vosk)




De: rufus
Util para: 1 personas

Fecha: 18/06/2008
Mensaje:

¿según tu así debería funcionar?:

var visible;
var MSI=(document.all)?true:false;

function hazVisible(id){
if(visible!=null){
if(MSI){
visible.setAttribute("classname","tablah");
}else{
visible.setAttribute("class","tablah");
}
}
visible=document.getElementById(id);
if(MSI){
visible.setAttribute("classname","tablav");
}else{
visible.setAttribute("class","tablav");
}
}

Pues así no funciona.
El cometido de este script como ya habrás dedudido es esconder un elemento y hacer visible otro, para ello guarda en 'visible' la referencia al objeto que se puede ver.
El problema surge porque IExplorer no asigna el atributo classname al objeto, ni siquiera da un error en la pagina, simplemente no hace nada.
Sin embargo en firfox u Opera funciona.
Gracias.



De: jbosch(vosk)
Util para: 0 personas

Fecha: 18/06/2008
Mensaje:

pues si asi debería de funcionar, pero lo he estado probando y nada de nada: por lo visto no actualiza el elemento aunqué internamente si que le asigna la clase indicada. cambio de tactica, que esta vez si que va a funcionar porque lo he probado :)

primero una funcion que asigna de forma estandar el valor de la clase:

function asignaClase(e,c)
{
for(var q=0;q<e.attributes.length;q++)
{
if(e.attributes.item(q).nodeName=="class")
{
e.attributes.item(q).nodeValue=c;
}
}
}

los argumentos son: 'e' un puntero al elemento con el que voy a rtabajar, 'c' nombre de la nueva clase. ahora simplemente usas la otra funcion desde la que vas a llamar a esta:

function hazVisible(id)
{
if(visible!=null) {asignaClase(visible,"tablah");}
visible=document.getElementById(id);
asignaClase(visible,"tablav");
}

aunqué ocupe un poco mas de espacio nos olvidamos de trabajar por navegadores. como puedes ver no es algo imediato porque necesita recorrer la lista de atributos declarados para un elemento; no he probado de guardar un puntero al atributo, pero puedes probarlo: ademas de guardar un puntero al elemento previo, guardar tambien un puntero al atributo class de ese elemento, de esta forma al menos evitarias recorrer dos veces las listas de atributos (en el peor de los casos que es cuando hay un elemento previo).

lo he probado en nsn7, msie6 y ff2.

jbosch(vosk)



De: jbosch(vosk)
Util para: 0 personas

Fecha: 18/06/2008
Mensaje:

me olvidaba una cosa: si solo vas a cambiar la visibilidad de un elemento, porque no trabajas directamente con los estilos del elemento?

elemento.style.visibility="visible";

es mas rápido esto que lo que colgué anteriormente. de echo, esto solo modifica un estilo, en cambio lo anterior asigna toda una lista de estilos definida en la class.

jbosch(vosk)



De: adri
Util para: 1 personas

Fecha: 02/11/2008
Mensaje:

no puedo buscar en el buscador de internet explore por ke dice ke ane falta el arhibo NULL ¿como hago para poder busar en el buscador de I.E?Gracias contestar alguien



Volver al foro | Responder | Añadir nuevo tema

Quizás le interese:

WebEstilo.com no se hace responsable de las opiniones que los usuarios puedan verter en cualquiera de los foros existentes.

Si te solucionó el problema pulsa en G+1


Gracias!






Comparte



Última modificación:05 de Agosto de 2012. Spain - España.
© 1998-2004 por . Todos los derechos reservados.