Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Servlet/JSP/JSF/JavaFX Script  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
reply to postflat modethreaded modego to previous topicgo to next topicgo to back
作者 【讨论】html页面禁用右键,浏览器后退、刷新,以及相应快捷键
lisliefor





发贴: 287
于 2006-06-15 21:36 user profilesend a private message to userreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
前些天交付一个系统时,客户提出新要求回车等同于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 norightclickEnvelope{
  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、魔兽之类的游戏,而且看上去还蛮充裕的。Smile
呵呵,当人像懒惰的时候,找出几个借口就很容易让人抛开以前的一些或决定或承诺或计划......
然后,当休息够了,就开始自责了......

不知道大家是怎样的状态,在此以我自己的一些体验和教训,作为一个有想法却没有做法的典型,让大家拍砖吧!
上边那些代码的原理,我确实比较迫切希望能够明白、理解他。应我朋友的一句话,“这些东西,你学到了,它就是你的了。”
文章、帖子、书.....都行。

期望前辈,过来人给点意见或建议.......
在此,谢谢....




话题树型展开
人气 标题 作者 字数 发贴时间
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

reply to postflat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   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