繁体   English   中英

在Silverlight中禁用F5

[英]Disable F5 in Silverlight

我的一些用户在键入时不小心碰到了F5,导致他们丢失了所有键入的内容。 我不需要阻止点击“刷新”按钮。

我尝试使用以下javascript,但是它仅在用户不关注Silverlight应用程序时才起作用(即,当用户单击SL应用程序之外的某个地方时它起作用,但是当用户将注意力集中在Silverlight应用程序上时,不会触发onkeydown事件SL)。

document.onkeydown=function(e) {
    var event = window.event || e;
    if (event.keyCode == 116) {
        event.keyCode = 0;
        alert("test");
        return false;
    }
}

处理这种情况的最佳方法可能是使用onbeforeunload事件并要求用户进行确认。 这样,您可以从合法的行中清除意外的刷新或关闭的选项卡,而无需处理所有可能的快捷方式。

window.onbeforeunload = function(e) {
    return 'Are you sure you want to leave without saving your changes?';
};

您甚至可以仅在某些未保存的更改时显示确认对话框。

我会说,像这样?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM