minato128 blog

minato128の公開メモ帳です。

IEのファンクションキーの無効化

実行環境

IE9
Windows7 64bit
VS2010(.NET 2.0)


こちらのコードでうまくいったけど、突然下のエラーが。

    if(event.keyCode >= 112 && event.keyCode <= 123)
    {
        event.keyCode = null;
        event.returnValue = false;
    }

JavaScriptでファンクションキーを制御する方法(IE限定) - Akio’s Log

Microsoft JScript 実行時エラー: アクセスが拒否されました。


調べてみたらセキュリティ上の仕様だった。

IE では、悪意のあるスクリプト コードによってユーザーの意図しないファイルが
クライアント システムから送信される危険性を排除するため、
ファイル アップロード フォーム (file 型の input 要素) がフォーカスを持つ場合に
event.keyCode プロパティ値を変更する処理を禁止するように実装されている


HtmlInputFile コントロールでのevent.keyCode プロパティ値変更について


ブラウザの仕様じゃ仕方がないので、とりあえずエラーだけ回避して終わりにした。

    if (!(event.srcElement.tagName == "INPUT" && event.srcElement.type == "file")) {
        event.keyCode = null;
        event.returnValue = false;
    }


あとはこの機能の重要度で対策を考える。