Foros del Web » Programando para Internet » Javascript »

HOTKEYS fallod de "Es nulo o no es un objeto (solo en IE)"

Estas en el tema de HOTKEYS fallod de "Es nulo o no es un objeto (solo en IE)" en el foro de Javascript en Foros del Web. hola a todos Tengo este código Código: <script language="javascript"> var isCtrl = false; var teclaprimaria = "18";// alt document.onkeyup=function(e){ if(e.which == teclaprimaria) isCtrl=false; } document.onkeydown=function(e){ ...
  #1 (permalink)  
Antiguo 30/09/2009, 10:12
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
HOTKEYS fallod de "Es nulo o no es un objeto (solo en IE)"

hola a todos

Tengo este código

Código:
<script language="javascript">

var isCtrl = false;

var teclaprimaria = "18";// alt

document.onkeyup=function(e){
	if(e.which == teclaprimaria) isCtrl=false;
}

document.onkeydown=function(e){
	if(e.which == teclaprimaria) isCtrl=true;
	
	
		if(e.which == 83 && isCtrl == true) {
		alert("PRED: S -- irás a google");
		return false; 
		}
		if(e.which == 48 && isCtrl == true) {
		alert("PRED: 0 -- irás a yahoo");
		return false; 
		}
		if(e.which == 84 && isCtrl == true) {
		alert("PRED: T -- irás a ruizmasa");
		return false; 
	 	} 
} 
</script>
</body>
lo que hace es verificar si las teclas ALT y t,s o 0 (cero) se pulsan)
es decir si la tecla alt esta pulsada mientras se pulsa l tecla correspondiente ejecuta la accion

el caso es que funciona perfecto en FF y en chrome, pero en IE me dice que

which es nulo o no es un objeto

en opera tampoco funciona

alguno puede indicarme como solucionar esto??

mil gracias
  #2 (permalink)  
Antiguo 30/09/2009, 10:26
Avatar de Daniel Ulczyk
Super Moderador
 
Fecha de Ingreso: febrero-2005
Ubicación: Buenos Aires
Mensajes: 9.264
Antigüedad: 19 años, 2 meses
Puntos: 2114
Respuesta: HOTKEYS fallod de "Es nulo o no es un objeto (solo en IE)"

Tema movido desde el foro de Accesibilidad Web y Usabilidad
__________________
—Somos lo que hacemos repetidamente. La excelencia, entonces, no es un acto sino un hábito. (Aristóteles dixit)
  #3 (permalink)  
Antiguo 30/09/2009, 18:10
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: HOTKEYS fallod de "Es nulo o no es un objeto (solo en IE)"

en iexplorer no te funciona porque el modelo de evento que implementa no es el mismo a Fx y chrome. en el caso de opera no lo se, pues no lo tengo para comprobarlo. el modelo de evento estandar dice que cuando un evento ocurre este pasa como argumento un objeto evento que contiene la informacion relaiconada a ese evento. o sea, considerando que los eventos son funciones, estos se llaman con al menos un argumento y ese argumento es el objeto. para demostrarlo,
Código:
// ejemplo en html;
<body onload="alert('cantidad de argumentos: ' + arguments.length)">contenido</body>

// ejemplo en javascript;
onload = function(){
alert("cantidad de argumentos: " + arguments.length);
}
en el caso de iexplorer, este no pasa el objeto evento como argumento. por el contrario, el objeto se declara en el ambiente global de javascript con el nombre event. lo que tienes que hacer es muy simple. tienes que determinar si a la funcion se le ha pasado el argumento, y si no, lo mas probable es que sea iepxlorer. ubica el siguiente codigo al principio de tus funciones.
Código:
var e = e || event;
por otro lado, cabe notar que la propiedad which no existe en iexplorer, su similar es keyCode.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 02/10/2009, 06:08
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: HOTKEYS fallod de "Es nulo o no es un objeto (solo en IE)"

No he logrado hacerlo funcionar, encontre un script de prototype y me funciona

si alguno lo quiere que me mande un MP y lo cuelgo aqui mismo

gracias de todas formas

Última edición por spockyto; 04/10/2009 a las 04:49
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 18:18.