diff options
author | anekos | 2010-03-01 12:22:20 +0000 |
---|---|---|
committer | anekos | 2010-03-01 12:22:20 +0000 |
commit | 08d1e29d6c0666abca5446be4d82ebc997c7ee38 (patch) | |
tree | 486c12c14dc5870a48db066a70b26e326ed24df3 /feedSomeKeys_3.js | |
parent | 8577256ac4e8bb6c893170a4fb7221c2b77238b4 (diff) | |
download | vimperator-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-x | feedSomeKeys_3.js | 23 |
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, |