谁知道在frame框架下的画面如何禁止所有的画面使用刷新啊?
我写的如下
document.onkeydown = function(){
alert("here1");
if ((event.keyCode==116)|| //屏蔽 F5 刷新键
   (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
   alert("here2");
   event.keyCode=0;
   event.returnValue=false;
}
}
代码写在子画面上,不能禁止浏览器的刷新按钮。
改成KeyDown()也不行。

解决方案 »

  1.   

    难, 页面刷新是浏览器的基本机制。即使你这样禁止了, 它还可以把url拷贝出来新开一个叶面。
      

  2.   

    现在我用了这个之后,要点击两次F5才会触发 function,抛出here1,困惑啊。
    现在改成了
    top.document.onkeydown = function(){
    alert("here1");
    if ((window.event.keyCode==116)|| //屏蔽 F5 刷新键
       (window.event.ctrlKey && window.event.keyCode==82)){ //Ctrl + R
       alert("here2");
       goLogin();
    }
    }
    我想判断是F5之后调用goLogin()总是不行啊,here2没有出来,晕。
      

  3.   

    /**
     * 禁止刷新
     * @returns {Boolean}
     */
    function forbidRefrash()
    {

    //屏蔽鼠标右键
    document.oncontextmenu = function()
    {
    event.returnValue=false;

    //屏蔽F1帮助
    window.onhelp = function() 
    {
    return false;
    }  

     document.onkeydown = function()  

      if ((window.event.altKey)&& 
          ((window.event.keyCode==37)||   //屏蔽 Alt+ 方向键 ← 
           (window.event.keyCode==39)))   //屏蔽 Alt+ 方向键 → 
      { 
         event.returnValue=false; 
      } 
         /* 注:这还不是真正地屏蔽 Alt+ 方向键, 
         因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放, 
         用鼠标点掉警告框,这种屏蔽方法就失效了。以后若 
         有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/    if ((event.keyCode==8)  ||                 //屏蔽退格删除键 
          (event.keyCode==116)||                 //屏蔽 F5 刷新键 
          (event.ctrlKey && event.keyCode==82))
      { 
     //Ctrl + R 
         event.keyCode=0; 
         event.returnValue=false; 
      } 
      if (event.keyCode==122)
      {
      event.keyCode=0;event.returnValue=false;
      }  //屏蔽F11 
      if (event.ctrlKey && event.keyCode==78)
      {
      event.returnValue=false;   //屏蔽 Ctrl+n 
      }
      if (event.shiftKey && event.keyCode==121)
      {
      event.returnValue=false;  //屏蔽 shift+F10 
      }
      if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
      {
      window.event.returnValue = false;             //屏蔽 shift 加鼠标左键新开一网页
      }  
           
      if ((window.event.altKey)&&(window.event.keyCode==115))             //屏蔽Alt+F4 
      { 
          window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px"); 
          return false; 
      } 

    }
      

  4.   

    /**
     * 禁止刷新
     * @returns {Boolean}
     */
    function forbidRefrash()
    {

    //屏蔽鼠标右键
    document.oncontextmenu = function()
    {
    event.returnValue=false;

    //屏蔽F1帮助
    window.onhelp = function() 
    {
    return false;
    }  

     document.onkeydown = function()  

      if ((window.event.altKey)&& 
          ((window.event.keyCode==37)||   //屏蔽 Alt+ 方向键 ← 
           (window.event.keyCode==39)))   //屏蔽 Alt+ 方向键 → 
      { 
         event.returnValue=false; 
      } 
         /* 注:这还不是真正地屏蔽 Alt+ 方向键, 
         因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放, 
         用鼠标点掉警告框,这种屏蔽方法就失效了。以后若 
         有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/    if ((event.keyCode==8)  ||                 //屏蔽退格删除键 
          (event.keyCode==116)||                 //屏蔽 F5 刷新键 
          (event.ctrlKey && event.keyCode==82))
      { 
     //Ctrl + R 
         event.keyCode=0; 
         event.returnValue=false; 
      } 
      if (event.keyCode==122)
      {
      event.keyCode=0;event.returnValue=false;
      }  //屏蔽F11 
      if (event.ctrlKey && event.keyCode==78)
      {
      event.returnValue=false;   //屏蔽 Ctrl+n 
      }
      if (event.shiftKey && event.keyCode==121)
      {
      event.returnValue=false;  //屏蔽 shift+F10 
      }
      if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
      {
      window.event.returnValue = false;             //屏蔽 shift 加鼠标左键新开一网页
      }  
           
      if ((window.event.altKey)&&(window.event.keyCode==115))             //屏蔽Alt+F4 
      { 
          window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px"); 
          return false; 
      } 

    }