JavaScript Konami Code 实现代码


Posted in Javascript onJuly 29, 2009

在 Facebook 上有一个彩蛋:
登录 facebook.com ,点击你首页的任何地方,键盘输入 Up, Up, Down, Down, Left, Right, Left, Right, B, A, Enter 后,再点击页面或滚动一下滚动条,你会发现特殊的变化(如下图),嘿嘿 ^^

JavaScript Konami Code 实现代码

玩过“魂斗罗”的朋友,肯定一眼就能看出输入的字符原来就是“魂斗罗”中的“秘技”。其实“秘技”的术语叫 Konami Code,详细见图示:

JavaScript Konami Code 实现代码

那如何用 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"); 
} 
}

不过 Abhi 的方法还是冗余了点,Jan Jarfalk 在留言中提供了一个短小精悍的代码:
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"); 
}
Javascript 相关文章推荐
JQuery Dialog的内存泄露问题解决方法
Jun 18 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
Nov 06 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
Jun 23 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
详解JavaScript中的blink()方法的使用
Jun 08 Javascript
jquery仿京东商品放大浏览页面
Jun 06 jQuery
JS实现在文本指定位置插入内容的简单示例
Dec 22 Javascript
vue中 数字相加为字串转化为数值的例子
Nov 07 Javascript
有趣的JavaScript隐式类型转换操作实例分析
May 02 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 Javascript
Nest.js 授权验证的方法示例
Feb 22 Javascript
JavaScript 获取事件对象的注意点
Jul 29 #Javascript
javascript CSS画图之基础篇
Jul 29 #Javascript
JQuery 表格操作(交替显示、拖动表格行、选择行等)
Jul 29 #Javascript
JavaScript 设计模式学习 Factory
Jul 29 #Javascript
JQuery UI皮肤定制
Jul 27 #Javascript
JavaScript 设计模式学习 Singleton
Jul 27 #Javascript
xml 封装与解析(javascript和C#中)
Jul 26 #Javascript
You might like
PHP daddslashes 使用方法介绍
2012/10/26 PHP
解析php类的注册与自动加载
2013/07/05 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
yii使用activeFileField控件实现上传文件与图片的方法
2015/12/28 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
学生鉴定评语大全
2014/05/05 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
调解书格式范本
2015/05/20 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript