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读取ASP设定的COOKIE
Nov 24 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
使用jQuery validate 验证注册表单实例演示
Mar 25 Javascript
将中国标准时间转换成标准格式的代码
Mar 20 Javascript
javascript常用功能汇总
Jul 05 Javascript
JavaScript中 ES6 generator数据类型详解
Aug 11 Javascript
bootstrap日历插件datetimepicker使用方法
Dec 14 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
Jan 05 Javascript
BootStrapTable 单选及取值的实现方法
Jan 10 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
jQuery表单校验插件validator使用方法详解
Feb 18 jQuery
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中的日期及时间
2006/11/23 PHP
php下删除字符串中HTML标签的函数
2008/08/27 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
Vue项目中添加锁屏功能实现思路
2018/06/29 Javascript
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python使用PyFetion来发送短信的例子
2014/04/22 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python web框架学习笔记
2016/05/03 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
爱心捐款倡议书
2014/04/14 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
小学运动会入场词
2015/07/18 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
PHP 时间处理类Carbon
2022/05/20 PHP
python+opencv实现目标跟踪过程
2022/06/21 Python