From 08d1e29d6c0666abca5446be4d82ebc997c7ee38 Mon Sep 17 00:00:00 2001 From: anekos Date: Mon, 1 Mar 2010 12:22:20 +0000 Subject: フレーム指定の実装変更 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@36879 d0d07461-0603-4401-acd4-de1884942a52 --- feedSomeKeys_3.js | 23 ++++++++++++++++++++--- 1 file 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, -- cgit v1.2.3