Google Reader の記事一覧のオンマウスで背景色を変更する GreaseMonkey を書いてみた
はてブとか特にタイトルしかのってこないので、気になった記事の「>>」をクリックして新しいウインドウを開くのだけれど、ちゃんとマウスの位置が合っているのか分かりずらいから。
5件表示、全件表示のボタンを表示する GreaseMonkey に機能追加。
DLはこちら もの置き
// ==UserScript== // @name google reader all open button // @namespace googlereader@basyura.com // @include http://www.google.co.jp/reader/view/* // ==/UserScript== // version 0.1 2008.01.14 <ボタン変更> // version 0.5 2008.01.19 <全て既読にするが無効になっていたのを修正> // version 0.6 2008.01.19 <件数指定で表示できていなかったのを修正> // version 0.7 2008.01.21 <全て表示で5件表示になっていたのを修正> // <remove漏れ対応でロジック変更> // version 0.8 2008.01.22 <ちょっとキレイにした> // version 0.9 2008.03.05 <記事一覧のオンマウスで背景色変更> // var BUTTON_LIST = {5:"5件表示" , 50:"全て表示"}; function grb_openPages(max) { var entries = document.getElementById("entries"); var entry = entries.childNodes; var list = []; for(var i = 0 ; i < entry.length ; i ++) { if(list.length >= max) { break; } var className = entry[i].className.split(" ")[0]; if(className == "entry") { var a = entry[i].getElementsByTagName("a")[0]; var event = document.createEvent('MouseEvents'); event.initMouseEvent ('click', false, true, document.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); a.dispatchEvent(event); GM_openInTab(a.href); list.push(entry[i]); } } for(var i = 0 ; i < list.length ; i++) { entries.removeChild(list[i]); } } function grb_addButton() { var toplinks = document.getElementById("viewer-top-links"); var allread = document.getElementById("mark-all-as-read"); for(var m in BUTTON_LIST) { var nopen = allread.cloneNode(true); nopen.id = "nopen_" + m; toplinks.insertBefore(nopen , allread); var span = nopen.getElementsByTagName("span")[0]; span.innerHTML = BUTTON_LIST[m]; span.addEventListener("click" , (function(m_){return function(){grb_openPages(m_)}})(m) , false); } } function grb_addExpandEvent() { var entries = document.getElementById("entries"); var children = entries.childNodes; for(var i = 0 ; i < children.length ; i++) { var ele = children[i].childNodes[0]; if(ele.hasAttribute("add_event_flg")) { continue; } ele.addEventListener("mouseover" , grb_changeColor(ele , true) , false); ele.addEventListener("mouseout" , grb_changeColor(ele , false) , false); ele.setAttribute("add_event_flg" , "true"); } } function grb_changeColor(ele , flg) { return function() { if(flg) { ele.style.background = "#C6DBFF" } else { ele.style.background = ""; } } } grb_addButton(); var entries = document.getElementById("entries"); entries.addEventListener("mouseover" , grb_addExpandEvent , false);