在这里注册了一年多时间了,这是第一次发贴,嘻,因为自己也就半瓶子的水平,我想请教的,别人都问过了,所以很多次google的时候就链接到了这里.
但有一个问题,我实在解决不了,在网上搜了很多,也找不到解决方案.就是:如何屏蔽IE浏览器的关闭按钮? (或直接屏蔽掉整个标题栏)
如果不能屏蔽的话,有什么替代方法? (做一个什么东西把它盖住)我发现网上很多人会误解,以为要作流氓网页,其实我制作的是一个在线考试系统,屏蔽关闭按钮我认为是必需的.可是,这个问题很难办.我现在的做法是设置了一个cookie, 考试者如何关闭了这个网页的话, 将在一小时内不能再次进入考试. 这的确不是一个好方法, 所以, 请教一下这里的达人, 怎么解决这个问题?

解决方案 »

  1.   

    用JS监听事件.<script language="javascript">
    window.onbeforeunload = function(){
    alert(1);
    return false;
    }
    </script>
      

  2.   

    有人说用 "模态对话框" (showModalDialog() 或 showModelessDialog() ), 模态对话框怎样设置全屏显示?看是小问题,还真是复杂.
      

  3.   

    IE only 前提下的三种办法(我只在IE6跑了跑)
    一、记得保存过一个微软的和IE右上角三个按钮通讯的控件,选择实在找不到了;你自己在网上搜搜看,我也翻箱倒柜再找找试试。二、无奈提示
    这段代码可跳过刷新,但无法强制留在本页。如果是框架,本代码放在顶级框架集。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>aaaaaaaaa</title>
    <script> 
    window.onbeforeunload = function(e) { 
      e=e||window.event;
      if ((function(){ 
        var mx=e.screenX||e.pageX, my=e.clientY||e.pageY
        var w=top.window.document.body.offsetWidth||window.innerWidth;
        return(my < 0 && mx > (w - 25)); 
      })()) { 
        s="\n\n\n============================================\n\n";
        s+="点取消按钮,不许退!";
        s+="\n\n=============================================\n\n\n";
        event.returnValue=s ;
      }  
    }
    </script> 
    <body>
    考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考
    </body>
    </html>
    三、变态最大化
    不描述了,自己试试。打开后,进任务管理器关闭ie
    window.open('','','fullscreen=3')
      

  4.   

    有人介绍过一种方法, 在打开IE程序的时候,后边加一个参数"-k", 这样打开的网页就是纯粹的全屏显示, 但这办法在编写网页的时候用不上.
      

  5.   

    对第二个办法的解释,为什么IE only:
    window.onbeforeunload = function(e) { IE下,传进来的这个红字参数是mouse相关事件,究竟是mouse什么事件我忘记了,反正可以抓到鼠标坐标;而FF下,传进来的就是onbeforeunload这个事件。很显然,这个鸟事件是没办法抓到鼠标坐标的,所以根据坐标位置来防止刷新提示退出也就英雄无用武之地了。
      

  6.   

    谢谢toury的帮助.
    让JS获得鼠标的坐标, 然后根据这个坐标再进行处理.  按照这个思路好象能够解决问题, 我试试.
      

  7.   

    获得鼠标坐标的方法在onbeforeunload事件里没有用, 最后总是要出现关闭提示的.  不知道有没有这样的方法:随时监测鼠标的位置,不让 clientY 等于负值, 这样光标就指不到标题栏上去了.
      

  8.   

    等你实现了这个功能后,试一下ctrl+w和alt+f4……
      

  9.   

    楼上的提示很好, 我发现即使屏蔽整个键盘上的按键, 但ctrl和alt还是起作用.
      

  10.   

    关于"交白卷"的问题我再考虑一下, 看能不能用onbeforeunload实现点了关闭按钮之后就视为交卷, 自动提交给处理页, 记录一个0分的成绩, 使系统确认这个人已经考试过了, 而不是还没有参加考试.