From a8b657e33197e25a6a15c3b68e910110f05ae4ca Mon Sep 17 00:00:00 2001 From: drry Date: Sat, 12 Apr 2008 16:01:01 +0000 Subject: lang/javascript/vimperator-plugins/trunk/hatenaStar.js: * XPath を慣用句で無駄に堅牢化しました。 * ほか。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@9365 d0d07461-0603-4401-acd4-de1884942a52 --- hatenaStar.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'hatenaStar.js') diff --git a/hatenaStar.js b/hatenaStar.js index 0ec8057..e1d74d8 100644 --- a/hatenaStar.js +++ b/hatenaStar.js @@ -1,15 +1,15 @@ /** - * For vimperator 0.6.0 + * For Vimperator 0.6.0 * @author mattn mattn.jp@gmail.com */ (function(){ -liberator.commands.addUserCommand(['hatenastar','hatenas'], 'add hatena star', +liberator.commands.addUserCommand(['hatenastar', 'hatenas'], 'add Hatena Star', function (arg, special) { try { - var result = liberator.buffer.evaluateXPath('.//img[@class="hatena-star-add-button"]'); - for (var i = 0; i < result.snapshotLength; i++){ + var result = liberator.buffer.evaluateXPath('.//img[contains(concat(" ", normalize-space(@class), " "), " hatena-star-add-button ")]'); + for (var i = 0, l = result.snapshotLength; i < l; i++) { if (arg == '' || arg == 'all' || arg == (i+1)) { var s = result.snapshotItem(i); var e = document.createEvent('MouseEvents'); @@ -17,18 +17,18 @@ liberator.commands.addUserCommand(['hatenastar','hatenas'], 'add hatena star', s.dispatchEvent(e); } } - } catch (e) { liberator.echoerr('hatenastar: ' + e); } + } catch (e) { liberator.echoerr('hatenaStar: ' + e); } } ); -liberator.mappings.addUserMap([liberator.modes.NORMAL], [',?s'], 'add hatena star', - function(count){ +liberator.mappings.addUserMap([liberator.modes.NORMAL], [',?s'], 'add Hatena Star', + function (count) { try { - for (var n = 0; n < count; n++) liberator.commands.get('hatenastar').execute("all", false, count); - } catch (e) { liberator.echoerr('hatenastar: ' + e); } + for (var n = 0; n++ < count; liberator.commands.get('hatenastar').execute("all", false, count)); + } catch (e) { liberator.echoerr('hatenaStar: ' + e); } }, { noremap: true, - flags: liberator.Mappings.flags.COUNT + flags: liberator.Mappings.flags.COUNT } ); -- cgit v1.2.3