Contenido

Ayuda con un script

14 Feb

+ 9

Estoy haciendo unas cosillas con Javascript y no logro cancelar un evento a ver si alguien me puede echar una mano.

Con stopPropagation();


document.onkeydown = function(e) {
      if (e.keyCode == 8 && e.stopPropagation) e.stopPropagation();
      else ... 
}

Con preventDefaul();


document.onkeydown = function(e) {
      if (e.keyCode == 8 && e.preventDefault) e.preventDefault();
      else ... 
}

No me ha funcionado con ninguna de las formas anteriores, pero la idea es evitar que al pulsar el botón “borrar” esté nos mande a la página anterior, estoy llegando a creer que no se puede cancelar este evento, pero si alguien sabe algo más me haría un gran favor. 

Gracias por anticipado. 

if (typeof window.event == ‘undefined’){
document.onkeypress = function(e){
var test_var=e.target.nodeName.toUpperCase();
if (e.target.type) var test_type=e.target.type.toUpperCase();
if ((test_var == ‘INPUT’ && test_type == ‘TEXT’) || test_var == ‘TEXTAREA’){
return e.keyCode;
}else if (e.keyCode == 8){
e.preventDefault();
}
}
}else{
document.onkeydown = function(){
var test_var=event.srcElement.tagName.toUpperCase();
if (event.srcElement.type) var test_type=event.srcElement.type.toUpperCase();
if ((test_var == ‘INPUT’ && test_type == ‘TEXT’) || test_var == ‘TEXTAREA’){
return event.keyCode;
}else if (event.keyCode == 8){
event.returnValue=false;
}
}
}

Otro sitio q hablan de este problema:
http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Q_20828609.html?qid=20828609

Una cosa que de seguro tenes q tener en cuenta es edsactivar el Alt+Flecha_Izq

Ese script que te pegue lo saque de http://www.sitepoint.com/forums/showthread.php?t=168890 espero te sirva.

Saludos

si no recuerdo mal, necesitas hacer un return false; para eliminar los eventos, despues del e.preventDefault();

probado sobre Firefox y funciona jejeje por lo menos ami

por cierto, siento que sea el tercer comentario, pero te dejo aquí el código que he usado:

document.onkeydown = function(e) {
if (e.keyCode == 8 && e.preventDefault) {
e.preventDefault();
return false;
} else {
alert(e.keyCode);
}
}

efectivamente, yo siempre he usado el “return false;” como dice epplestun
:)

Muchas Gracias a todos, me ha ido perfecto, excepto en MAC.

En el Apple hace caso a omiso a al código anterior :(

en MAC pasa del return false? que extraño no? si es lo más corriente, por cierto sobre que browser? safari?

vaya y en firefox peta … um ya voy a preguntar a la peña e MAC (jeje los del curro) a ver si saben algo de eso

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.


Cerrar
Enviar por Correo