- - PR -
WEBページでのショートカットキー割り当てについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-09-13 12:00
度々失礼します。
WEBページにショートカットキーを割り当てたいのですが、Javascript(dojo1.1)で行いたいと思ってます。ブラウザのショートカットもあり微妙ですが・・。 現在、サンプルでこんなのを見つけました。 <script type="text/javascript"> <!-- dojo.addOnLoad(init); // ショートカットキー function init() { dojo.connect(dojo.byId("body"), "onkeypress", function(e) { // (1) イベントオブジェクトのkeyCharに、押されたキーが格納されている var keyChar = e.keyChar; // keyCharが空の場合は、特殊なキー if (keyChar == "") { // (2) dojo.keysの定数と比較すればキーの種類が判明する for (var k in dojo.keys) { if (dojo.keys[k] == e.keyCode) { keyChar = k; } } } if (e.ctrlKey == true && keyChar == "d") { alert("Ctrl+D:削除"); } if (e.ctrlKey == true && keyChar == "c") { alert("Ctrl+C:コピー"); } if (e.ctrlKey == true && keyChar == "v") { alert("Ctrl+V:ペースト"); } // (3) イベントにおけるデフォルトの振る舞いを止め、 // イベントの伝播を阻止する e.preventDefault(); e.stopPropagation(); }) } //--> </script> このサンプルは元々input type="text"だったもので(bodyにはonkeypressイベントが無い)すが、何とかアクティブウインドウ時にはショートカットを効かせたいと思ってます。このままやった場合、FireFoxでは感知しましたが、他ブラウザでは感知できませんでした(イベントが無いので当然ですが・・)。 お分かりになる方いましたら、アドバイスよろしくお願いします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2008-09-13 12:01 ] |
|
投稿日時: 2008-09-16 10:43
自己解決です。
dojo.connect(dojo.body(), "onkeypress", function(e) { なお、SaffariはCtrl+Cが既にブラウザのショートカットキーに登録されているようで効きませんでした。クロスブラウザでは全ブラウザに共通しないキーの割り当てが必要層です(当たり前ですが・・)。 |
1