0

基本的に、私たちのシステムでは、ユーザーがレポートを入力し、誤って作業を失う可能性のあるあらゆる方法を見つけるため、データを失う可能性のあるすべてのユーザーが押すことができるものをロックダウンしています。F5、CRTL + R、CTRL + W、およびBackspaceはすべて無効になっています。IEのすべてのバーが非表示になり、閉じるボタンに確認ダイアログが表示されます。

ALT + F4、ALT +←、ALT+→を無効にする運がありませんでした

javascriptで無効にしてみました。しかし、私の方法は機能していません。

if (window.event.altKey) {
    if (window.event.keyCode == 115) {
        window.event.cancelBubble = true;
        window.event.returnValue = false;
        window.event.keyCode = 0;
        window.status = "Alt + F4 is disabled on all popups";
        return false;
    }
}

もっと抜本的な方法が必要かもしれないと思っています。

ここでのこの回答で、彼はこれがshdocvw.dllで可能かもしれないと示唆していますが、それが何を伴うのかはわかりません。

Alt + Xの組み合わせを無効にする手段はありますか、またはおそらくそれらのために悪用できる回避策はありますか?

4

2 に答える 2

1

いいえ、これらの組み合わせを無効にすることはできません。セキュリティ上の理由から(そうしないと、Webページがコンピュータを乗っ取る可能性があります...)。

あなたの最善の策は(機能の降順で):

  • サーバー上の作業を継続的に保存します(Googleドキュメントを考えてください)
  • クライアント側のストレージ(WebStorageなど)を使用する
  • ページから移動する(またはブラウザーを閉じる)前に確認を求めるonBeforeUnloadハンドラーを実装します
  • 終了時にページの状態(フォームなどを含む)を保存するブラウザーをユーザーに使用させる(例:Firefox、IIRC、Chromeなど)
于 2012-09-04T18:53:48.670 に答える
1

デフォルトのブラウザの動作を台無しにしないでください。ユーザーが誤ってウィンドウを閉じてしまうことが心配な場合は、次のonbeforeunloadイベントを使用してください。

window.onbeforeunload = function () {
    return 'You will lose all unsaved changes.';
};​

http://jsfiddle.net/jbabey/rPLWd/

于 2012-09-04T19:01:58.720 に答える