1

一部のユーザーは、入力中に誤って F5 キーを押してしまい、入力した内容をすべて失ってしまいます。更新ボタンを押さないようにする必要はありません。

次の JavaScript を使用しようとしましたが、ユーザーが Silverlight アプリに集中していない場合にのみ機能します (つまり、ユーザーが SL アプリの外のどこかをクリックすると機能しますが、ユーザーが焦点を合わせても onkeydown イベントはトリガーされません)。 SL)。

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

2 に答える 2

1

おそらく、この状況を処理する最善の方法は、onbeforeunload イベントを使用して、ユーザーに確認を求めることです。このようにして、考えられるすべてのショートカットを処理することなく、偶発的な更新や閉じたタブを正当なものから根絶することができます。

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

保存されていない変更がある場合にのみ、確認ダイアログを表示することもできます。

于 2013-03-08T16:00:03.767 に答える
-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は、更新するためのショートカットでもあります

于 2013-03-08T14:52:02.737 に答える