您好我们在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中遇到此问题
答案 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;
}
});