0

嗨,我们在 Web 应用程序中遇到了转义键的问题。如果用户按下退出键,Web 应用程序将停止加载。我尝试使用所有这些(onkeydown 和 onkeyup)

document.attachEvent("onkeydown", win_onkeydown_handler);
window.attachEvent("onkeydown", win_onkeydown_handler);
window.document.attachEvent("onkeydown", win_onkeydown_handler);

我无法在我的 Web 应用程序中检测到转义(KeyCode=27).. 但我能够检测到刷新、f5 和所有其他键

注意:我在 IE 中遇到这个问题

4

3 回答 3

1

这有助于我防止在 iframe 中转义

function disableEscapeAndRefresh(){
try{
    if(window.frames && window.frames[0]){
        window.frames[0].focus();
        for (var i_tem = 0; i_tem < window.frames.length; i_tem++){
            if(document.all && document.body.filters)
                window.frames[i_tem].document.onkeydown = new Function("var e=window.frames["+i_tem+"].event; if(e.keyCode==116){e.keyCode=0;alert('Refresh Not Allowed');return false;}if(e.keyCode==27){e.keyCode=0;alert('Escape Not Allowed');return false;};");
        }
    }
}catch(e){

}
}

在 iframe onload 中调用此方法

于 2012-10-08T15:57:16.860 回答
0

假设您的目标是已attachEvent启用的 IE 版本,您可以使用它来检测正在按下的转义键。事件的处理是防止默认事件行为的常用代码,尽管这可能不适用于取消页面下载,因为这可能被视为安全漏洞(想象一下想要阻止用户取消恶意下载的不道德的开发人员):

document.attachEvent('onkeydown', function(){
  if(window.event.keyCode == 27) {
    window.event.returnValue = false; 
    window.event.cancelBubble = true;
  }
});

http://jsfiddle.net/steveukx/LJHs8/

于 2012-10-05T16:43:49.950 回答
0

我不认为有任何方法可以捕获它......这相当于单击 X 停止页面加载。

于 2012-10-05T16:12:33.850 回答