Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Servlet/JSP/JSF/JavaFX Script
打印话题 寄给朋友 订阅主题 |
作者 | 【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键 |
lisliefor
发贴: 287 |
于 2006-06-15 21:36
前些天交付一个系统时,客户提出新要求回车等同于Tap键的功能,并能提交表单;禁用鼠标右键;禁用浏览器后退、刷新及相应快捷键,甚至提出禁用浏览器菜单栏的要求。 我google了一下,找到几条有价值的文章。不过很多时候,即使我们找到了这些东西,也不知道通过什么样的方式,转到自身系统上来,可能是由于本身所学过于贫瘠,很多东西都看不明白。 禁后退比较不错的做法点击后退的,提示网页过期。可搜索出来结果都..... 例如: http://edu.80diy.com/HTML/3169.html 这篇文章是介绍asp技巧的,(我仅学过jsp,而且不是很踏实),里面的方法,尝试过很多次,都失败了,甚至都没有办法将里面的语法错误,调试清楚(寒......)。 后来找到一个方法,抵消点击后退键的方法: <script language="JavaScript"> <!-- javascript:window.history.forward(1); //--> </script> 即后退键仍然可以点击,只是没有效果。 禁用浏览器的快捷键的方法(即使你禁用了浏览器的后退的按钮,而相应的快捷键还是能够达到后退的目的): http://sitemanager.cnzone.net/tech/21/2003-05/20030501000000-100908.html 上面介绍的非常详细,原理是,监听整个页面的onkeydown(按键)事件,辨别按的哪个键,修改returnValue的值,从而使相应键失效。我稍微改了一下,放在jsp页面代码中,效果还不错: <script language="javascript" for="document" event="onkeydown"> <!-- //回车等同于Tab键 if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='submit' && event.srcElement.type!='reset' && event.srcElement.type!='textarea' && event.srcElement.type!=''){ event.keyCode=9; } //屏蔽alt+左右方向键(页面后退前进) if((event.altKey)&&((event.keyCode==37)||(event.keyCode==39))){ event.returnValue=false; } //屏蔽退格删除键,屏蔽F5刷新键,Ctrl+R if((event.keyCode==116)||(event.ctrlKey && event.keyCode==82)){ event.keyCode=0; event.returnValue=false; } //屏蔽Ctrl+n if((event.ctrlKey)&&(event.keyCode==78)){ event.returnValue=false; } //屏蔽shift+F10 if((event.shiftKey)&&(event.keyCode==121)){ event.returnValue=false; } //屏蔽shift加鼠标左键新开一网页 if(event.srcElement.tagNam == "A" && event.shiftKey){ event.returnValue = false; } //屏蔽Alt+F4 if((event.altKey)&&(event.keyCode==115)){ showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px"); return false; } --> </script> 而禁用鼠标右键,如: <script language="JavaScript"> <!-- if (window.Event) document.captureEvents(Event.MOUSEUP); function nocontextmenu(){ event.cancelBubble = true event.returnValue = false; return false; } function norightclick{ if (window.Event){ if (e.which == 2 || e.which == 3) return false; } else if (event.button == 2 || event.button == 3){ event.cancelBubble = true event.returnValue = false; return false; } } document.oncontextmenu = nocontextmenu; // for IE5+ document.onmousedown = norightclick; // for all others //--> </script> ps:以上所有java script并列列在页面代码中,比如,你还有一些方法是自己写的,针对一些文本字段的是否为空、非法字符、字符长度等等一些判断。跟这些都是并列放置的。 虽然问题解决了,但心里非常不舒服。上面我所做的一些工作仅仅是ctrl+c、ctrl+v,当然,很快我给自己找到一个借口:时间不够!比如说,考试、课程、作业、实验、文档(大量,包含打印、非打印)、项目,再加上一些个人爱好......这些都需要时间啊!!!! 不过很奇怪的是,我有时间玩cs、魔兽之类的游戏,而且看上去还蛮充裕的。 呵呵,当人像懒惰的时候,找出几个借口就很容易让人抛开以前的一些或决定或承诺或计划...... 然后,当休息够了,就开始自责了...... 不知道大家是怎样的状态,在此以我自己的一些体验和教训,作为一个有想法却没有做法的典型,让大家拍砖吧! 上边那些代码的原理,我确实比较迫切希望能够明白、理解他。应我朋友的一句话,“这些东西,你学到了,它就是你的了。” 文章、帖子、书.....都行。 期望前辈,过来人给点意见或建议....... 在此,谢谢.... |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
5827 | 【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键 | lisliefor | 3169 | 2006-06-15 21:36 |
3691 | Re:【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键 | lisliefor | 834 | 2006-06-15 21:50 |
3394 | Re:【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键 | zcjl | 332 | 2006-06-16 09:14 |
3517 | Re:【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键 | lisliefor | 204 | 2006-06-16 10:21 |
3508 | Re:【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键 | wakinfan | 71 | 2006-07-16 15:09 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |