Google Reader で 5 件ずつ一気に新しいタブで表示する Greasemonkey を書いてみた
はてなのキーワードを登録している場合、各エントリの内容はほとんど表示されずタイトルぐらいしか分からないので、一つずつ開いて中身を確認するしかない。一つ一つクリックして開いていくのが前々からめんどうだったので、5 件ずつタブで一気に表示するボタンを追加する Greasemonkey を書いてみた。なにぶん初心者なので定石が分からないけど・・こんな感じ。
// ==UserScript== // @name google reader all open button // @namespace basyura // @include http://www.google.co.jp/reader/view/ // ==/UserScript== var MAX_OPEN_COUNT = 5; function openLump() { var entries = document.getElementById("entries"); var hrefs = entries.getElementsByTagName("a"); var limit = hrefs.length; if(limit > MAX_OPEN_COUNT) { limit = MAX_OPEN_COUNT; } for(var i = 0 ; i < limit ; i++) { var event = document.createEvent('MouseEvents'); event.initMouseEvent ('click', false, true, document.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); hrefs[i].dispatchEvent(event); GM_openInTab(hrefs[i].href); var list = hrefs[i].parentNode.parentNode.parentNode.parentNode; list.removeChild(list.firstChild); } } function addOpenButton() { var button = document.createElement("input"); button.type = "button"; button.value = MAX_OPEN_COUNT + "件表示"; button.addEventListener("click" , openLump , false); var search_submit = document.getElementById("search-submit"); search_submit.parentNode.appendChild(button); } addOpenButton();
ボタンを押して 5 件新しいタブを開いたら、リストからエントリを remove する(なんて強引)。innerHTML だとゴミが残ったのだ。outerHTML は使えないようだし(使っちゃダメ?)。
本当は訪問済みのリンクを判定したかったけど、どこを見て良いのか分からず・・・とりあえず自分が困らない機能を実装してみた。結構楽になると思う。
動きが・・・
ちょーあやしー(笑)remove のタイミングが良くなさそう。
明日またしらべよう。