为了辩护,我刚从为期两周的假期(大部分时间都是离线)返回海外。 因此,当我的伴侣Royce直接发推文给我时,我不知道他是什么意思:
为什么您的网站上没有konami代码?
现在,在这一点上,我有机会快速使用Google来维护我对所有最新模因都熟悉的脆弱的魅力。 但是,没有,我因突然出现的诚实而受苦,我发出了不那么出色的答复:
什么是Konami代码?
我应该使用Google; 我的怪胎信誉破灭。 如果有任何读者尚未听说过Konami密码,那么此问题将使您摆脱同样的命运。
我喜欢网站上的复活节彩蛋; 由于完全毫无意义的原因,我花时间和精力来编写代码有一种反常的吸引力。 “ Konami密码”可以追溯到老式的主机游戏作弊密码; 组合键是向上,向上,向下,向下,向左,向右,向左,向右,B,A。如果您想了解更多信息,可以在Youtube上观看一段视频,其中介绍了所有内容 。 输入代码时触发了许多实施了复活节彩蛋的网站。 ESPN网站在愚人节那天做到了,而jQuery网站已经有很多年了,包括Google Reader甚至Facebook 。 访问Konami代码站点以找到站点列表。
我浏览了几种实现此类复活节彩蛋的基于JavaScript的解决方案,并发现了Paul Irish编写的一个非常漂亮的jQuery示例,其中展示了一些JavaScript-fu。 该脚本使用事件侦听器拦截keydown
事件并全部进入关键的跟踪。 如果按下的组合键包含Konami代码,则会触发复活节彩蛋:
var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
$(document).keydown(function(e) {
kkeys.push( e.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 ){
$(document).unbind('keydown',arguments.callee);
// Launch easter egg here
}
});
该脚本首先声明几个变量。 kkeys
,用于存储用户按键的空数组; 和konami
,一个字符串,代表正确的密钥组合的密钥代码。
事件侦听器附加到document
对象以侦听keydown
事件。 加载页面时,每按一次键, keycode
就会添加到kkey
数组中。 然后,脚本检查以查看是否已输入Konami代码。 如果已包含,则将删除事件侦听器,并显示复活节彩蛋。
注意使用arguments.callee
吗? (我在Tech Times第215期中写了奇怪但有用的arguments
对象。) callee
属性引用当前函数,因此使用arguments.callee
是事件侦听器函数删除自身的好方法。 在此示例中,它还使事件侦听器功能保持匿名。
Paul Irish网站上的复活节彩蛋使用Cornify的服务,这是一种非常有用的独角兽和Rainbow网络服务 :
$.getScript('http://www.cornify.com/js/cornify.js', function(){
cornify_add();
$(document).keydown(cornify_add);
});
我发现了其他一些值得注意的例子。 Matt Snider有一个使用YUI的脚本在其中创建了一个自定义事件,另外两个是简单的旧JavaScript示例。 第一个是konami-js ,如果两次按键之间的延迟时间较长,它将使用超时来重置Konami代码检测例程。 第二个是James Padolsey的onKonamiCode事件处理程序 。
那你还在等什么? 你有代码; 立即将Konami代码添加到您的网站。
From: https://www.sitepoint.com/does-your-site-have-the-konami-code/