在 Facebook 上有一個彩蛋:
登錄 facebook.com ,點擊你首頁的任何地方,鍵盤輸入 Up, Up, Down, Down, Left, Right, Left, Right, B, A, Enter 后,再點擊頁面或滾動一下滾動條,你會發(fā)現(xiàn)特殊的變化(如下圖),嘿嘿 ^^
玩過“魂斗羅”的朋友,肯定一眼就能看出輸入的字符原來就是“魂斗羅”中的“秘技”。其實“秘技”的術(shù)語叫 Konami Code,詳細(xì)見圖示:
那如何用 JavaScript 也在自己的頁面上添加一個類似的彩蛋呢?
Abhi 在 《Konami Code on Facebook : How to implement it on your site》 一文中提供了大體思路:
var $ = {
enabled: false,
tmp: Array(),
_konamiCode: Array(65,66,39,37,39,37,40,40,38,38),
init: function() {
this.tmp = Array(65,66,39,37,39,37,40,40,38,38);
},
konamiCode: function(e) {
if(!this.enabled) {
var t = this.tmp.pop();
if((e.keyCode-t) == 0) {
if(this.tmp.length == 0) {
this.enabled = true;
}
} else {
this.init();
}
} else {
this.action();
}
},
// Change the action() function to whatever you want to
action: function() {
//alert("Konami Code Activated");
}
}
然后在 load 的時候調(diào)用 $.init() 方法,在 keydown 的時候調(diào)用 $.konamiCode(event) 方法。
不過 Abhi 的方法還是冗余了點,Jan Jarfalk 在留言中提供了一個短小精悍的代碼:
// Tweetable Konami code
var k=[];
function(e){
k.push(e.keyCode);
if(k.toString().indexOf("38,38,40,40,37,39,37,39,66,65")>=0) {
//alert("Konami Code Activated");
}
}
PS:有興趣的還可以在 Google Reader 上嘗試下此“秘技”,一般人我還不告訴他,嘿嘿。
原文:http://www.planabc.net/2009/05/21/how_to_implement_konami_code_with_javascript/