Foros del Web » Programando para Internet » Javascript »

javascript no intrusivo

Estas en el tema de javascript no intrusivo en el foro de Javascript en Foros del Web. Bueno, en un tema anterior queria crear un efecto solo con CSS, por veo que no se pudo (si hay alguien que puede porfavor postear ...
  #1 (permalink)  
Antiguo 13/12/2008, 14:02
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
javascript no intrusivo

Bueno, en un tema anterior queria crear un efecto solo con CSS, por veo que no se pudo (si hay alguien que puede porfavor postear en dicho tema).
Pero recibi una recomendación para mejorar la accesibilidad de mi código javascript por parte de los usuarios rb3m y Mikmoro llamandome a utilizar el javascript no intrusivo.

Bueno busque información en google, di con arta información pero ninguna con ejemplos concretos, pues casi todos estos estaban repetidos y lo peor de todo, es que los probe y ninguno me funcionaba.

El que mas encontraba era el siguiente:

javascript intrusivo (si me funciona)
Código:
<a href="#" onclick="window.open('popup.html','nombre','width=400,height=450,resizable=yes')">
Abrir popup
</a>
javascript no intrusivo (no me funciona ¬¬)
Código:
<a href="#" id="mypopup">Abrir popup</a>

<script type="text/javascript">
   var x = getElementByID('mypopup');
   x.onclick = function() {
    window.open('popup.html','nombre','width=400,height=450,resizable=yes')
   }
</script>

Mi idea es utilizar algo parecido a este código para asginar una funcion onclick a un id de una imagen con CSS para que abra un enlace y asi no irrumpir la accesibilidad del código.

Bueno si alguien sabe de un ejemplo que de verdad funciones o que haga funcionar el ejemplo no intrusivo anterior se los agradeceria...
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com
  #2 (permalink)  
Antiguo 13/12/2008, 14:11
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: javascript no intrusivo

Mal: getElementByID
Bien: getElementById
  #3 (permalink)  
Antiguo 13/12/2008, 14:21
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
Respuesta: javascript no intrusivo

Cita:
Iniciado por venkman Ver Mensaje
Mal: getElementByID
Bien: getElementById
vale, lo probe, pero aun no funciona :(
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com
  #4 (permalink)  
Antiguo 13/12/2008, 14:23
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años, 1 mes
Puntos: 122
Respuesta: javascript no intrusivo

document.getElementById()

Ahora, usar Javascript no obtruisvo es casi inútil si no se usa graceful degradation. En tu caso deberías poner una dirección en el href para que si js no está disponible, el usuario aun pueda ir a la pagina que se abre con la función.
__________________
twitter: @imbuzu
  #5 (permalink)  
Antiguo 13/12/2008, 14:25
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años, 1 mes
Puntos: 122
Respuesta: javascript no intrusivo

te falta el document.

getElementById es un método perteneciente a un nodo del DOM o al objeto del documento documento (document) no puedes hacer referencia a ese método sin hacer antes referencia a un objeto (un nodo) del documento o al documento mismo.

edito:
(Responde al mensaje numero 3 que no estava cuando escribí mi mensaje anterior.)
__________________
twitter: @imbuzu
  #6 (permalink)  
Antiguo 13/12/2008, 14:28
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
Respuesta: javascript no intrusivo

Cita:
Iniciado por buzu Ver Mensaje
document.getElementById()

Ahora, usar Javascript no obtruisvo es casi inútil si no se usa graceful degradation. En tu caso deberías poner una dirección en el href para que si js no está disponible, el usuario aun pueda ir a la pagina que se abre con la función.
perfecto, pero ese es el ejemplo que quiero hacer funcionar,
lo que realmente quiero hacer esta escrito unas lineas mas abajo

Cita:
Mi idea es utilizar algo parecido a este código para asginar una funcion onclick a un id de una imagen con CSS para que abra un enlace y asi no irrumpir la accesibilidad del código.
creo que me exprese mal...
lo que quiero hacer lo puedes ver aqui.
la idea es mejorar ese código para que sea mas accesible. Lo botones funcionales no deben contener un enlace, pero si un onclick mediante javascript para asignarle la funcion que yo deseo...
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com
  #7 (permalink)  
Antiguo 13/12/2008, 14:33
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años, 1 mes
Puntos: 122
Respuesta: javascript no intrusivo

Y te sirvió lo que te dije para resolver el problema?
__________________
twitter: @imbuzu
  #8 (permalink)  
Antiguo 13/12/2008, 14:46
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
Respuesta: javascript no intrusivo

yeah!
ahi solucione lo de abrir el popup, solo faltaba escribir document.
muchas gracias!

bueno ahora estoy adaptandolo a la imagen
lo que debe hacer la imagen es que al hacerle click, cambie una propiedad CSS de otro elemento por medio de su ID (en el ejemplo fondo rojo a verde)
lo estoy haciendo de la siguiente manera pero no me resulta...

Código HTML:
<div id="holachao" style="background-color:red;">Hola!</div>

<img src="/img/boton_minimizar.gif" style="cursor:pointer;" id="minimizarejemplo" alt="Minimizar Ejemplo" />

<script type="text/javascript">

   var x = document.getElementById('minimizarejemplo');
   x.onclick = function() {
	document.getElementById('holachao').style.background-color='green';
   	}

</script> 
no funciona, en que fallo esta ves?
despues eso lo pasare al archivo .js :D
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com

Última edición por Null_; 13/12/2008 a las 14:50 Razón: me falto .style.
  #9 (permalink)  
Antiguo 13/12/2008, 14:51
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años, 1 mes
Puntos: 122
Respuesta: javascript no intrusivo

document.getElementById('holachao').style.backgrou ndColor = "#color"
__________________
twitter: @imbuzu
  #10 (permalink)  
Antiguo 13/12/2008, 14:51
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años, 1 mes
Puntos: 122
Respuesta: javascript no intrusivo

Sin el espacio entre la u y la n. Ese espacio lo pone el foro
__________________
twitter: @imbuzu
  #11 (permalink)  
Antiguo 13/12/2008, 14:54
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
Respuesta: javascript no intrusivo

aahah ya encontre lo que queria,
el background-color no funciona en javascript, me funciono con .style.width='150px' que es lo que yo queria...

jaja gracias buzu me sirvio lo anterior, ahora voy a aplicar todo en mi ejemplo con javascript no intrusivo (L)

Bye!
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com

Última edición por Null_; 14/12/2008 a las 17:57 Razón: correccion. SI SE PUEDE CAMBIAR el fondo. se escribe diferente eso si en javascript: backgroundColor
  #12 (permalink)  
Antiguo 15/12/2008, 10:41
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
Respuesta: javascript no intrusivo

Hola de nuevo, bueno revivo el tema despues de 2 dias...
la caja no intrusiva quedo perfecta, incluso surgió otro botón funcional!
jaja

El ejemplo, parece que no es perfecto despues de todo, pues como comento Mikmoro en el tema anterior, a mi también me surgió la de idea de que aquel usuario que no disponga de javascript, no carge ni vea los botones funcionales, pues le serian inútiles. Y si pudiera realizar eso, aumentaría otro punto mas de la accesibilidad del ejemplo degrandando completamente al javascript

Alguna idea que pueda realizar esto?
se me ocurre que puede ser algo como insertar las imagenes mediante javascript (que no lo creo) o podría llegar a ser con php (aun tengo dudas)...

agradesco toda su ayuda
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com
  #13 (permalink)  
Antiguo 15/12/2008, 13:08
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 18 años, 1 mes
Puntos: 122
Respuesta: javascript no intrusivo

no, con php no serviría de nada, a menos que hicieras un complejo sistema de detección de js y envío de variables al servidor y registro de cookies. Lo más fácil es incluir lo botones mediante javascript así no hay problema pues si no hay js no se incluyen las imágenes.

Yo estoy trabajando en un CMS en el que tengo unos menúes tipo acordeón y estoy haciendo todo mis botones del acordeón de una forma similar. Aun que yo lo único que hago es agregar clases a unos items de una lista desordenada.

Saludos.
__________________
twitter: @imbuzu
  #14 (permalink)  
Antiguo 18/12/2008, 18:39
Avatar de Null_  
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 530
Antigüedad: 16 años, 1 mes
Puntos: 30
Respuesta: javascript no intrusivo

Hola de nuevo a todos,
Gracias por su ayuda en especial a Buzu que me ayudo bastante...
bueno pude degradr completamente el javascript y quedo totalmente accesible =D
aqui pueden ver el ejemplo si es que les sirve de algo

bye
__________________
Diego Escares
• Twitter: @diegoescares
• Web: diegoescares.com
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 23:07.