Js实现网页键盘控制翻页的方法


Posted in Javascript onOctober 30, 2014

本文实例讲述了Js实现网页键盘控制翻页的方法。分享给大家供大家参考。具体实现方法如下:

键盘控制翻页效果我想我们不少见了,经常在很多网站特别是相册的效果都可以直接使用键盘进行上下页进行翻页了,原理很简单,只要利用js监测用户是否有按上下键即可实现。

举例如下:

<a id="last" href="<?=$lefturl?>">上一章</a>

<a id="booklist" href="<?=$booklisturl?>">返回目录</a>

<a id="next" href="<?=$righturl?>">下一章</a>

js代码如下:
<script language="javascript">

<!--

last=document . getElementById("last").href;

next=document . getElementById("next").href;

booklist=document . getElementById("booklist").href;

function keyUp(e) {

if(navigator.appName == "Microsoft Internet Explorer")

{

var keycode = event.keyCode;

var realkey = String.fromCharCode(event.keyCode);

}else

{

var keycode = e.which;

var realkey = String.fromCharCode(e.which);

}

if(keycode==39){

window.location.href=next;

}

if(keycode==37){

window.location.href=last;

}

if(keycode==13){

window.location.href=booklist;

}

}

document.onkeydown = keyUp;

//-->

</script>

今天从网上看到这个功能,不错啊,以后就可以在文章中,增加这个功能了
var re = /<a href=["']?([-=w./?]+)["']?>[[(<]?上一页[])>]?</a>/igm; 

if (window.document.body.innerHTML.search(re) >= 0) { 

var PREVIOUS_PAGE = RegExp.$1; 

}

如果搜下到"上一页",则定义
var PREVIOUS_PAGE = RegExp.$1; 

var re = /<a href=["']?([-=w./?]+)["']?>[[(<]?下一页[])>]?</a>/igm; 

if (window.document.body.innerHTML.search(re) >= 0) { 

var NEXT_PAGE = RegExp.$1; 

}

如果搜下到"下一页",则定义
var NEXT_PAGE = RegExp.$1; 

if (typeof PREVIOUS_PAGE == "string" || typeof NEXT_PAGE == "string") { 

document.onkeydown = function() { 

switch (event.srcElement.tagName) { 

case "INPUT": 

case "TEXTAREA": 

case "SELECT": 

break; 

default: 

if (event.keyCode == 37 /* Arrow Left*/ && typeof PREVIOUS_PAGE == "string") { 

window.location.href = PREVIOUS_PAGE; 

} 

else if (event.keyCode == 39 /* Arrow Right */ && typeof NEXT_PAGE == "string") { 

window.location.href = NEXT_PAGE; 

} 

} 

} 

}

下面说一下我做过的一个上下翻页的快捷键实现。当用户点击左右方向键时,js获取键盘代码,然后跳转到下一页或者上一页,现在网上很多代码都是ie的,firefox下无法执行,很多时候都是因为ff下不支持非标准的**.click()造成的,ie下对A标签进行click操作默认转到了相应的网址,而ff下不可行(onClick()倒是可以,不过这是执行的A的onClick事件)。

解决办法也很简单,我们可以采用这个方法:捕获用户点击右方向键时,把下一页的A的href属性赋给window.location.href就可以了。

var $=function(id)

{

    return document.getElementById(id);

}

var hotKey=function(e) 

{

    var e =e||event;

    var k = e.keyCode||e.which||e.charCode;//获取按键代码

    if (k == 37)

    {

        if ($("prevPage"))

            window.location.href = $("prevPage").href;

    }

    else if (k == 39)

    {

        if ($("nextPage"))

            window.location.href = $("nextPage").href;

    }

    else if (k == 72)

    {

        if ($("home"))

            window.location.href = $("home").href;

    }

}

document.onkeydown = hotKey;//左右键

希望本文所述对大家基于javascript的web程序设计有所帮助。

Javascript 相关文章推荐
Javascript的常规数组和关联数组对比小结
May 24 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
Mar 07 Javascript
easyui简介_动力节点Java学院整理
Jul 14 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
Nov 28 Javascript
Angular实现的进度条功能示例
Feb 18 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
Nov 28 Javascript
JavaScript this绑定过程深入详解
Dec 07 Javascript
基于vue、react实现倒计时效果
Aug 26 Javascript
vue 组件内获取actions的response方式
Nov 08 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
javascript实现iframe框架延时加载的方法
Oct 30 #Javascript
js中iframe调用父页面的方法
Oct 30 #Javascript
js防止页面被iframe调用的方法
Oct 30 #Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 #Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 #Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 #Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 #Javascript
You might like
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
YII框架行为behaviors用法示例
2019/04/26 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
基于jquery的button默认enter事件(回车事件)。
2011/05/18 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
Python 类的继承实例详解
2017/03/25 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
详解python对象之间的交互
2020/09/29 Python
用Python 执行cmd命令
2020/12/18 Python
智能旅行箱:Horizn Studios
2018/04/30 全球购物
毕业生自荐信格式
2014/03/07 职场文书
2014年社区工作总结
2014/11/18 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
校运会宣传稿大全
2015/07/23 职场文书
SQL实现LeetCode(177.第N高薪水)
2021/08/04 MySQL