googleリーダ用greasemonkeyスクリプトを修正
どうもfirefoxの動きがだんだんと重くなるので調べてみたら、
jかスペースキーを押すたびにはてなスターの情報をロードする処理になっていたので
エントリーが増えたときだけロードするように修正した。
// ==UserScript== // @name HatenaStar on Google Reader // @namespace http://www.google.com/reader // @description Automatically load the feature of HatenaStar. // @include http://www.google.com/reader/* // ==/UserScript== (function(){ var head = document.getElementsByTagName('head')[0]; var s = document.createElement('script'); s.type='text/javascript'; s.src='http://s.hatena.ne.jp/js/HatenaStar.js' var w=unsafeWindow; var entries_count=0; function loadHatenaStarFeature(f){ setTimeout(function(){ var entries=document.getElementById('entries'); if(entries&&entries.className=='single-source cards'){ if(!f){ entries_count=entries.childNodes.length-1; w.Hatena.Star.EntryLoader(); }else{ w.Hatena.Star.EntryLoader.loadAddedEntries(); } }else{ setTimeout(arguments.callee,500); } },500); } function checkItem(evt){ if((evt.keyCode==79 && !evt.ctrlKey && evt.shiftKey)||evt.button==0){ loadHatenaStarFeature(); } } function addedItem(evt){ var entries=document.getElementById('entries'); if(entries&&entries.className=='single-source cards' && entries.childNodes.length>entries_count){ loadHatenaStarFeature(true); } } function setEntryLoader(){ if(w.Hatena){ w.Hatena.Star.EntryLoader.headerTagAndClassName = ["h2","entry-title"]; loadHatenaStarFeature(); w.Hatena.Star.EntryLoader.loadAddedEntries = function(node) { var c = w.Hatena.Star.EntryLoader; if (!node) node = document.body; var entries_org = c.entries; c.entries = null; var entries; entries = c.loadEntriesByHeader(node); c.entries = []; if (entries && typeof(entries.length) == 'number') { for (var i = entries_count; i < entries.length; i++) { var e = new w.Hatena.Star.Entry(entries[i]); e.showButtons(); c.entries.push(e); } entries_count=entries.length; } c.getStarEntries(); if (entries_org) { c.entries.push(entries_org); c.entries = w.Ten.Array.flatten(c.entries); } } }else{ setTimeout(arguments.callee,500); } } window.addEventListener('load',setEntryLoader,false); head.appendChild(s); window.addEventListener('keydown',checkItem,false); window.addEventListener('keydown',addedItem,false); document.addEventListener('mouseover',addedItem,false); document.getElementById('sub-tree').addEventListener('mousedown',checkItem,false); })();