キーイベントの覚書(IE中心のJavaScriptの説明ばかりだった)
改めて実感する。IEの存在は罪ではないかと。とは言っても、これは取りようによってはひがみとも見れる。仕方ないのだろう。愚痴とともにまたしても覚書をする。 Webベースでのアプリケーションがとても進化している。特に、Google Documentの存在はその中でも大きいと思う。さすがにビジネスでは活用できる場面というのは少ないと思うが(社内文書とか機密文書とかありますし・・・)、そこで使われている技術はウェブアプリケーションでも導入すべきではないかと思う。一口にウェブベースのアプリケーションといっても会計システムやデータ管理、統計管理などあるが基本的に入力を主にするものが多い。最近では私もPCのほとんどの操作をキーボードでするように心がけているし、そのほうが楽なときもある。よく使うショートカットキー、Ctrl+C、Ctrl+X、Ctrl+V、Ctrl+Sなど、ほとんどのアプリケーションで共通で実装されている。
ここからが本題だが、ウェブベースのアプリケーションでこれを実装することを考える。私もこの辺はまださわりしか実験しておらず、完璧なものをこの場では発表できないのだが、ここでもやはりJavaScriptを頼ることになる。「javascript キー イベント」などと検索すれば、多くの参考サイトが出てくるが、上位にヒットするのは「IEの場合」のサンプルが記述されたものだ。ここで実感してしまう。IEはやはりデファクトスタンダードなのかと。
IEとFirefoxなどではイベント系の操作方法が異なる。これは私のブログでイベントリスナーを覚書したときに記している。キーボードのイベントはonKeyPress、onKeyDown、onKeyUpといくつかある。IEはどれも同じ操作でどのキーが押されたかが取得できる。つまりEventオブジェクトのkeyCodeというプロパティを参照すればよい。Firefox系はイベント発生時渡される引数が参照しているオブジェクトのプロパティを見ればいいのだが、onKeyPressの場合はcharCode、onKeyDown、onKeyUpの場合はkeyCodeを参照しなければならない。
またキーイベントを実装する場合はブラウザが持っているショートカットキーと衝突しないようにする操作が必要と思われるが、こちらはまだ手をつけていない。まぁ今のところはこんなもんだろうか。