2012-03-12 33 views
6

我想創建一個.js文件的網站,當進入konami代碼上,上,下,下,左,右,左,右,B,A,開始(輸入)它會嵌入視頻。 但是,當進入正確的鍵時,網頁應該顯示「繼續前進」的內容,如果輸入了錯誤的鍵,它應該顯示「錯誤,再試一次」,並允許它們重新開始。進步konami代碼

我已經管理得到JavaScript的工作,在輸入正確的代碼時顯示警報,輸入錯誤的代碼顯示不同的代碼。

我已經manged使用在線資源,但他們沒有解釋如何得到錯誤的獲得這麼多的代碼,再試部分

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13"; 

    window.addEventListener("keydown", function(e){ 
    keys.push(e.keyCode); 


    if (keys.toString().indexOf(konami) >= 0) 
    {    
     alert('Right'); 
     keys = []; 
    }; 

    if (keys.toString().indexOf(konami) < 0) 
    { 
     alert('Wrong'); 
     keys = []; 
    } 
}, true); 

};

任何幫助將不勝感激。

回答

7
if (window.addEventListener) { 
    var index = 0; 
    var konami = [38,38,40,40,37,39,37,39,66,65,13]; 

    window.addEventListener("keydown", function(e){ 
     if (e.keyCode === konami[index]) 
     { 
      index++; //valid key at the valid point 

      if (index == konami.length) 
      { 
       alert("Correct"); 
      } else { 
       alert("Keep going"); 
      } 
     } else { 
      // incorrect code restart 
      index = 0; 
      alert("Wrong"); 
     } 
    }); 
} 
+0

非常感謝您的幫助,所有的OTH呃給出的答案和工作,但這是我能理解的唯一代碼。順便說一下,有一種方法可以嵌入一個YouTube視頻,一旦輸入正確的代碼就會顯示出來。或者嵌入代碼必須寫在.html文件中 – Calsolum 2012-03-12 23:09:38

+2

這是有爭議的,否則你應該包含'return'鍵(13) – NicolasMoise 2014-03-13 20:20:17

2

你可以做類似

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13".split(','); 

    window.addEventListener("keydown", function(e){ 
    keys.push(e.keyCode); 
     console.log(e.keyCode); 
    var lengthOfKeys = keys.length -1; 


    if (konami[lengthOfKeys] == keys[lengthOfKeys]) 
    {    
     alert('Right'); 
     if(konami.length === keys.length){ 
      alert('complete!'); 
     } 

    }else{ 
     alert('Wrong'); 
     keys = []; 
    } 
}, true); 
}; 

小提琴這裏http://jsfiddle.net/b6kuZ/

0

這個工作對我來說:

if (window.addEventListener) { 
    var keys = [], 
    konami = "38,38,40,40,37,39,37,39,66,65,13"; 
    konami_arr = konami.split(','); 

    window.addEventListener("keydown", function(e){ 
     keys.push(e.keyCode); 

     var position = keys.length-1; 

     if(keys[position ] != konami_arr[position]) 
     { 
      alert('Wrong'); 
      keys = []; 
     } 
     else if (keys.join(',') == konami) 
     {    
      alert('Right'); 
      keys = []; 
     }; 
    }, true); 
} 

​jsFiddle exmaple