Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problema ie9

Estas en el tema de Problema ie9 en el foro de Javascript en Foros del Web. Buenas! Estaba haciendo un spoiler tal que asi, Código: <div class="divspoiler"><input onclick="if (this.parentNode.nextSibling.childNodes[0].style.display != ''){ this.parentNode.nextSibling.childNodes[0].style.display = ''; this.value = 'Ocultar'; } else { this.parentNode.nextSibling.childNodes[0].style.display ...
  #1 (permalink)  
Antiguo 28/05/2014, 03:39
 
Fecha de Ingreso: abril-2014
Mensajes: 11
Antigüedad: 10 años
Puntos: 0
Problema ie9

Buenas! Estaba haciendo un spoiler tal que asi,

Código:
<div class="divspoiler"><input onclick="if (this.parentNode.nextSibling.childNodes[0].style.display != ''){ this.parentNode.nextSibling.childNodes[0].style.display = ''; this.value = 'Ocultar'; } else { this.parentNode.nextSibling.childNodes[0].style.display = 'none'; this.value = 'Mostrar'; }" type="button" value="Mostrar" /></div>
<div style="text-align: left;">
<div class="spoiler" style="display: none;"><img src="images/Captura.PNG" border="0" width="578" height="580" /></div>
</div>
El problema viene en el uso del mismo en I9 me da error.. SCRIPT5007: Unable to get value of the property 'style': object is null or undefined
home, line 124 character 1
En cambio si pongo compatibilidad con I8 si funciona.. He leido que es un conocido problema pero no consigo solución
  #2 (permalink)  
Antiguo 28/05/2014, 04:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema ie9

Usa el operador typeof antes de comparar el valor

Código Javascript:
Ver original
  1. if(typeof this.parentNode.nextSibling.childNodes[0].style.display == 'undefined'
  2.     || this.parentNode.nextSibling.childNodes[0].style.display == 'none') {
  3.           // Aquí lo que pretendas hacer
  4. }

Porqué usas .style.display = '' para "mostrar" el div?, digo, lo más correcto sería block, inline-block, etc.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 28/05/2014, 05:14
 
Fecha de Ingreso: abril-2014
Mensajes: 11
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema ie9

Me sigue dando el error con el typeof.

No tengo conocimientos sobre este código, es sacado de internet, no te sabria dar una respuesta a tu pregunta
  #4 (permalink)  
Antiguo 28/05/2014, 08:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Problema ie9

@Popkorn : con esa actitud...... mejor paga por el codigo
__________________
Salu2!
  #5 (permalink)  
Antiguo 28/05/2014, 12:19
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema ie9

buenas!

Cita:
Iniciado por Triby Ver Mensaje
Porqué usas .style.display = '' para "mostrar" el div?, digo, lo más correcto sería block, inline-block, etc.
@triby, al menos yo no le veo nada mal asignar un string vacio para mostrar el elemento. en ese caso, ya no sería el atributo style quien define la propiedad, sino que su definición se encuentra en otro punto, siguiendo un orden. si el stylesheet no define un valor para display, entonces el navegador asigna el valor por defecto según el tipo de elemento. en resumen, asignar un string vacio es lo mismo que asignar block o inline.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 29/05/2014, 02:12
 
Fecha de Ingreso: abril-2014
Mensajes: 11
Antigüedad: 10 años
Puntos: 0
Respuesta: Problema ie9

Cita:
Iniciado por Italico76 Ver Mensaje
@Popkorn : con esa actitud...... mejor paga por el codigo
Nose para que contestas al post si no aportas nada, pero claro es verdad la gente nace sabiendolo todo sobre todo tú.
No he venido por código el spoiler me funciona simplemente me da un error con el ie9.

Etiquetas: funcion, ie9, input
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 09:50.