Bug-org 769190 Should change the acceptable value of the argument of getModifierState()
初回投稿日時: 2012-07-11 23:11:22
最終更新日時: 2012-07-11 23:11:46
カテゴリ: IE Javascript Mozilla Core Mozilla15 Mozilla16 バグ修正
SNS:
Tweet (list)
先日、Firefox 15でKeyboardEvent.getModifierState()と、MouseEvent.getModifierState()を実装しましたが、そのパラメータのモディファイアキーの名前が、最新のDOM Level 3 Eventsのドラフトで変更されてしまいました。このバグは、それにあわせて修正しようというものです。
変わったキー名は二つで、"Scroll"が、"ScrollLock"に、"Win"が、"OS"になりました。
もちろん、既にリリースされているIE9では、"Scroll"と、"Win"で動作しますが、Geckoではこれらのキー名を引数に渡しても、常にfalseが返るようになっています。
IE9と互換性を持たせつつ、これらのキーの状態を調べたい場合は、
if (event.getModifierState("ScrollLock") || event.getModifierState("Scroll")) {
// in case ScrollLock is locked
}
としたり、
if (event.getModifierState("OS") || event.getModifierState("Win")) {
// in case Win key is pressed
}
とすることができます。文字列でキー名を指定するというのは効率は良くないですけど、変化の激しいWebの仕様としては好ましいかもしれません。