aboutsummaryrefslogtreecommitdiffstats
path: root/feedSomeKeys_3.js
diff options
context:
space:
mode:
authoranekos2010-03-01 12:22:20 +0000
committeranekos2010-03-01 12:22:20 +0000
commit08d1e29d6c0666abca5446be4d82ebc997c7ee38 (patch)
tree486c12c14dc5870a48db066a70b26e326ed24df3 /feedSomeKeys_3.js
parent8577256ac4e8bb6c893170a4fb7221c2b77238b4 (diff)
downloadvimperator-plugins-08d1e29d6c0666abca5446be4d82ebc997c7ee38.tar.bz2
フレーム指定の実装変更
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@36879 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'feedSomeKeys_3.js')
-rwxr-xr-xfeedSomeKeys_3.js23
1 files changed, 20 insertions, 3 deletions
diff --git a/feedSomeKeys_3.js b/feedSomeKeys_3.js
index bdfaf6b..e352a92 100755
--- a/feedSomeKeys_3.js
+++ b/feedSomeKeys_3.js
@@ -133,6 +133,18 @@ let INFO =
'\'': KeyEvent.DOM_VK_QUOTE
};
+ function getFrames () {
+ function bodyCheck (content)
+ (content.document.body.localName.toLowerCase() === 'body');
+
+ function get (content)
+ (bodyCheck(content) && result.push(content), Array.slice(content.frames).forEach(get))
+
+ let result = [];
+ get(content);
+ return result;
+ }
+
function getFrame (num) {
function bodyCheck (content)
(content.document.body.localName.toLowerCase() === 'body');
@@ -202,10 +214,14 @@ let INFO =
[lhs],
args['description'] || 'by feedSomeKeys_3.js',
function () {
- let frame = args['-frame'];
+ let frames = getFrames();
let elem = document.commandDispatcher.focusedWindow;
- if (typeof frame === 'undefined')
- elem = getFrame(frame) || elem;
+
+ if (typeof args['-frame'] !== 'undefined') {
+ frames = [frames[args['-frame']]];
+ elem = frames[0];
+ }
+
feed(rhs, args['-events'] || ['keypress'], elem);
},
{
@@ -227,6 +243,7 @@ let INFO =
literal: 0,
options: [
[['-urls', '-u'], commands.OPTION_STRING, regexpValidator],
+ [['-frame', '-f'], commands.OPTION_INT],
[
['-events', '-e'],
commands.OPTION_LIST,