在Silverlight中禁用F5

时间:2013-03-08 14:49:36

标签: javascript silverlight

我的一些用户在打字时不小心点击了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;
    }
}

2 个答案:

答案 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也是刷新的快捷方式