我的一些用户在打字时不小心点击了F5,导致他们丢失了所有输入的内容。我不需要阻止点击刷新按钮。
我尝试使用以下javascript,但它仅在用户不关注Silverlight应用程序时才有效(即,当用户点击SL应用程序之外的某个地方时它会起作用,但是当onxydown事件不会被触发时用户专注于SL)。
document.onkeydown=function(e) {
var event = window.event || e;
if (event.keyCode == 116) {
event.keyCode = 0;
alert("test");
return false;
}
}
答案 0 :(得分:1)
处理这种情况的最佳方法可能是使用onbeforeunload event并要求用户进行确认。通过这种方式,您可以在不处理所有可能的快捷方式的情况下,根据合法的刷新来清除意外刷新或关闭标签。
window.onbeforeunload = function(e) {
return 'Are you sure you want to leave without saving your changes?';
};
只有在有一些未保存的更改时,您甚至可以显示确认对话框。
答案 1 :(得分:-2)
我会说,这样的事情?
document.onkeydown = function()
{
switch (event.keyCode)
{
case 116 : //F5 button
event.returnValue = false;
event.keyCode = 0;
return false;
case 82 : //R button
if (event.ctrlKey)
{
event.returnValue = false;
event.keyCode = 0;
return false;
}
}
}
注意:ctrl + r也是刷新的快捷方式