使用JavaScript阻止F5键

时间:2013-06-28 20:12:12

标签: javascript jquery javascript-events keyboard-shortcuts

我已经编写了一些代码来阻止网页上的F5键。它工作正常,除非我必须显示大量数据。如果在生成HTML和JavaScript代码的加载期间按F5键,我的页面将刷新。

以下是我用来阻止F5密钥的代码:

document.onkeydown = fn;

var fn = function (e){ 
    if (!e) 
        var e = window.event;
    var keycode = e.keyCode;    
    if (e.which) 
        keycode = e.which;
    var src = e.srcElement;  
    if (e.target) 
        src = e.target;
    // 116 = F5     
    if (116 == keycode) {
        // Firefox and other non IE browsers
        if (e.preventDefault) { 
            e.preventDefault(); 
            e.stopPropagation();
          // Internet Explorer
        }else if (e.keyCode){ 
            e.keyCode = 0; 
            e.returnValue = false; 
            e.cancelBubble = true; 
        } 
            return false; 
    }
});

我认为在生成HTML和JavaScript代码时此代码无效。

2 个答案:

答案 0 :(得分:-1)

document.onkeydown=disableF5;
var version = navigator.appVersion;

function disableF5(e) 
{   var keycode = (window.event) ? event.keyCode : e.keyCode;

    if ((version.indexOf('MSIE') != -1)) 
    {  if (keycode == 116) 
       {  event.keyCode = 0;
          event.returnValue = false;
          return false;
       }
    }
    else 
    {  if (keycode == 116) 
          return false;
    }
}

答案 1 :(得分:-1)

我有一些非常简单的代码来防止我自己使用的F5。适用于IE,Chrome和Firefox:

function disableButtonsDown(e) { 
    if ((e.which || e.keyCode) == 116) e.preventDefault(); 
};
$(document).on("keydown", disableButtonsDown);