Escape键停止加载Web应用程序

时间:2012-10-05 16:07:39

标签: javascript internet-explorer internet-explorer-8

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

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

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

注意:我在IE中遇到此问题

3 个答案:

答案 0 :(得分: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中调用此方法

答案 1 :(得分:0)

我认为没有办法陷阱......这相当于点击X来停止加载页面。

答案 2 :(得分: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/