■
「〜な画像まとめ」みたいなページで、いちいちクリックしてどうこうするのがダルいのでVimperatorのプラグインを書いてどうにかした。
まず、並べられているサムネイルあるいはURL文字列をクリックすると元の画像が表示されるタイプのページに対応するべく、いま表示しているタブ中のリンクのうち、<a href=***>の***の部分かリンク文字列が正規表現にマッチするもの全てを新規タブで開くプラグインを書いた。
(function(){ liberator.commands.addUserCommand(['lo'], 'link open', function(arg){ var urls = []; var as = window.content.document.getElementsByTagName('a'); for(var i = 0; i < as.length; i++){ if(as[i].href.match(arg) || as[i].innerHTML.match(arg)){ urls.push(as[i].href); } } liberator.open(urls, liberator.NEW_BACKGROUND_TAB); }, { completer: function(arg){ var suggestions = []; var as = window.content.document.getElementsByTagName('a'); for(var i = 0; i < as.length; i++){ if(as[i].href.match(arg) || as[i].innerHTML.match(arg)){ suggestions.push([as[i].href, as[i].innerHTML]); } } return [0, suggestions]; } } ); })();
これでおもむろに :lo .*(gif|jpg|png)$ とかやるといま表示しているタブ中の画像っぽいものへのリンク全てが新規タブで開かれる。
次に、単純に画像そのものが並べて表示してあるタイプのページに対応するべく、いま表示しているタブ中の画像のうち、<img src=***>の***の部分が正規表現にマッチするもの全てを新規タブで開くプラグインを書いた。
(function(){ liberator.commands.addUserCommand(['io'], 'image open', function(arg){ var urls = []; var imgs = window.content.document.getElementsByTagName('img'); for(var i = 0; i < imgs.length; i++){ if(imgs[i].src.match(arg)){ urls.push(imgs[i].src); } } liberator.open(urls, liberator.NEW_BACKGROUND_TAB); }, { completer: function(arg){ var suggestions = []; var imgs = window.content.document.getElementsByTagName('img'); for(var i = 0; i < imgs.length; i++){ if(imgs[i].src.match(arg)){ suggestions.push([imgs[i].src, '']); } } return [0, suggestions]; } } ); })();
これでおもむろに :io .*(gif|jpg|png)$ とかやるといま表示しているタブ中の画像っぽいもの全てが新規タブで開かれる。
さらに .vimperatorrc に
map s :dialog savepage<CR>d
を追加することで、キーボード操作だけでいま見ている画像を保存できるようにした。これで猫画像を効率的に集められる。大量のタブを一気に開こうとするとブラウザが固まるので危険。