From ecea02e73d3a78652120edc5492a1c2a93d58ba6 Mon Sep 17 00:00:00 2001 From: anekos Date: Mon, 1 Mar 2010 18:51:48 +0000 Subject: vkeypress がうまく動作していないのを修正 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@36895 d0d07461-0603-4401-acd4-de1884942a52 --- feedSomeKeys_3.js | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/feedSomeKeys_3.js b/feedSomeKeys_3.js index 8aeb679..746960e 100755 --- a/feedSomeKeys_3.js +++ b/feedSomeKeys_3.js @@ -39,7 +39,7 @@ let PLUGIN_INFO = feedSomeKeys 3 feed some defined key events into the Web content キーイベントをWebコンテンツ側に送る - 1.0.1 + 1.0.2 anekos new BSD License (Please read the source code comments of this plugin) 修正BSDライセンス (ソースコードのコメントを参照してください) @@ -47,16 +47,16 @@ let PLUGIN_INFO = 2.3 2.3 ; // }}} // INFO {{{ let INFO = - @@ -157,6 +157,23 @@ let INFO = return result.snapshotLength && result.snapshotItem(0); } + function createEvent (eventName, event) { + let result = content.document.createEvent('KeyEvents'); + result.initKeyEvent( + eventName, + true, + true, + content, + event.ctrlKey, + event.altKey, + event.shiftKey, + event.metaKey, + event.keyCode, + event.charCode + ); + return result; + } + function virtualize (event) { event.keyCode = VKeys[String.fromCharCode(event.charCode).toLowerCase()]; event.charCode = 0; @@ -173,7 +190,7 @@ let INFO = let [, vkey, name] = eventName.match(/^(v)?(.+)$/); if (vkey) virtualize(keyEvent); - let event = events.create(content.document, name, keyEvent); + let event = createEvent(name, keyEvent); target.dispatchEvent(event); }); } -- cgit v1.2.3