素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

リロードせずにはてなハイクを更新するGreasemonkey

追記:HatenaStarがちゃんと表示されるようにした。AutoPagerizeに対応するのは難しそうだから見送る。

// ==UserScript==
// @name autoUpdate
// @namespace http://d.hatena.ne.jp/javascripter/
// @description はてなハイクのエントリーをリロードせずに更新します
// @include http://h.hatena.ne.jp/*
// ==/UserScript==

const INTERVAL=10000;

setInterval(function(){
function get(u) {
  with( new XMLHttpRequest() ) {
    open("GET", u, false);
    send(null);
    return responseText
  }
}
var temp=document.createElement('div');
temp.innerHTML=get(location.href);
document.getElementsByClassName('entries')[0].innerHTML=temp.getElementsByClassName('entries')[0].innerHTML;
unsafeWindow.Hatena.Star.EntryLoader(document);
},INTERVAL);


HTMLをパースするのに、DOMParserは使えないようなのでcreateElementでダミーの要素を作ってそこにinnerHTMLで注入した。

参考:
behance - ロックスターになりたいからget(u)をお借りした。
英和辞書ひきまくる Greasemonkey スクリプト | Sun, Dec 3. 2006 - 氾濫原 [HANRANGEN]HTMLのパースの方法を参考にした。