aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xfeedSomeKeys_3.js27
1 files 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 =
<name lang="ja">feedSomeKeys 3</name>
<description>feed some defined key events into the Web content</description>
<description lang="ja">キーイベントをWebコンテンツ側に送る</description>
- <version>1.0.1</version>
+ <version>1.0.2</version>
<author mail="anekos@snca.net" homepage="http://d.hatena.ne.jp/nokturnalmortum/">anekos</author>
<license>new BSD License (Please read the source code comments of this plugin)</license>
<license lang="ja">修正BSDライセンス (ソースコードのコメントを参照してください)</license>
@@ -47,16 +47,16 @@ let PLUGIN_INFO =
<minVersion>2.3</minVersion>
<maxVersion>2.3</maxVersion>
<detail><![CDATA[
- ----
+ see ":help feedSomeKeys-plugin"
]]></detail>
<detail lang="ja"><![CDATA[
- ----
+ see ":help feedSomeKeys-plugin"
]]></detail>
</VimperatorPlugin>;
// }}}
// INFO {{{
let INFO =
-<plugin name="feedSomeKeys" version="1.0.1"
+<plugin name="feedSomeKeys" version="1.0.2"
href="http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/feedSomeKeys_3.js"
summary="Feed some defined key events into the Web content"
xmlns="http://vimperator.org/namespaces/liberator">
@@ -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);
});
}