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の仕様としては好ましいかもしれません。