2011-07-11 13 views
5

Esto es gracioso, quiero mostrar un cierto div en un sitio web solo si se escribe una palabra secreta en esa página (no hay formularios presentes). ¿Cuál es la forma más fácil de lograr esto con JQuery? ¿Hay algún complemento? Gracias de antemano aplausos Tabaluga¿Cómo puedo consultar con JQuery, si se escribe una palabra determinada en el navegador?

+0

¿Cómo/dónde quiere usted que el usuario escriba esta palabra? –

+0

¿No hay formularios? ¿Quieres decir que no hay ningún ingreso de texto? – Johnny5

+0

¿Entonces lo que estás diciendo es que simplemente escriben, no en ningún tipo de cuadro de texto? ¿Algo así como un tipo de código konami? – Jeremy

Respuesta

7
if (window.addEventListener) { 
     var kkeys = [], konami = "68,73,78,78,69,82"; //this spells dinner 
     window.addEventListener("keydown", function(e){ 
       kkeys.push(e.keyCode); 
       if (kkeys.toString().indexOf(konami) >= 0) { 
        // run code here  
        $("#text").hide().fadeIn("slow").html('Now the website will appear.'); 
       } 
     }, true); 
} 

puede comprobar con qué cartas son lo haciendo:

if (window.addEventListener) { 
    window.addEventListener("keydown", function(e){ 
     $("#text").append(e.keyCode + " "); 
    }, true); 
} 
+0

¡EXCELENTE! Muchas gracias :) – tabaluga

2

trate de usar js-Hotkey jquery plugin:

$(document).bind('keydown', 's+e+c+r+e+t', fn); 

También es posible que desee inspeccionar a través KonamiCodeWebsites para ver cómo funciona:

En este sitio web debe ingresar el código konami (UP + UP + DN + DN + LFT + LFT + RGT + RGT + B + A) para ingresar al sitio web.

+0

genial plugin! Gracias – tabaluga

1

HTML:

<div style="display: none" class="secret">Correct password!</div> 

JS:

var pass="password"; 
var typed=""; 

$(document).keypress(
    function (e) { 
     typed += String.fromCharCode(e.which); 

     if (typed===pass) { 
      $('.secret').show(); 
     } 
    } 
); 

Si está familiarizado con Javascript Cierres usted puede deshacerse de las variables globales como esto:

$(document).keypress((function(e) { 
    var pass = "password"; 
    var typed = ""; 

    return function(e) { 
     typed += String.fromCharCode(e.which); 

     console.log(typed); 
     if (typed === pass) { 
      $('.secret').show(); 
     } 
    }; 
})()); 
+0

gracias mucho, mucho :) – tabaluga

0

Suena como necesitas escuchar eventos de teclado.

$(document).ready(function(){ 
    var currentKey = 0; 
    var validKeyArray = [22,23,24]; //list of valid keys to listen to in order 
    $('body').keyup(function(event) { 
     if (event.keyCode == validKeyArray[currentKey]){ 
      currentKey ++; 
     } else { 
      currentKey = 0; 
     } 
     if (currentKey == validKeyArray.length){ 
      // SUCCESS! Do your magic div right here! 
      // console.log('SUCCESS!'); 
     } 

    }); 
}); 
+0

gracias mucho, mucho :) – tabaluga

+0

No hay problema ... De hecho, creo que el éxito condicional debe ser 'if (currentKey == validKeyArray.length-1)' ¡Ups! :-) –

+0

creo que es '' '' 'keyCode'''' camelcase –

0

Aquí es un ejemplo de lo que puede hacer: http://jsfiddle.net/Akkuma/CGmnw/

Se trata de un prototipo para una aclaración. Básicamente, lo que hace es mantener una matriz de códigos clave que deben presionarse en ese orden. A continuación, incrementa la comprobación y se restablece cuando se detecta una clave incorrecta o se agota el tiempo para ingresarla.

El prototipo ofrece un restablecimiento de la tecla incorrecta y después de un cierto tiempo transcurrido.

+0

gracias mucho, mucho :) – tabaluga

2

javascript puro:

var typedWord = ''; 
window.addEventListener('keypress', function(e){ 
    var c = String.fromCharCode(e.keyCode); 
    typedWord += c.toLowerCase(); 
    if(typedWord.length > 4) typedWord = typedWord.slice(1); 
    if(typedWord == 'jogo') alert('JOGO'); 
}); 

http://codepen.io/rafaelcastrocouto/pen/xeGps

Cuestiones relacionadas