ユニークスター数

    @@ -1,6 +1,6 @@ /* * @title ユニークスター数 - * @description 一人一星でスターをカウントします。 + * @description 一人一星でスターをカウントします。ページをあらかた読み込み終わった後に実行して下さい。 * @include http://* * @license MIT License */ @@ -10,19 +10,21 @@ if (typeof(Hatena) == "undefined" || !Hatena.Star) return; var i, e = Hatena.Star.EntryLoader.entries; +// スターが多すぎるページ向けの強制リセット、乱暴。 +if (Ten.JSONP.Callbacks.length) Ten.JSONP.Callbacks = []; for (i = 0; i < e.length; i++) { - if (!e[i].stars.length) continue; - e[i].bmlS = function() { - new Ten.JSONP(Hatena.Star.BaseURL + 'entry.json?uri=' + this.eURI, this, 'bmlR'); + new Ten.JSONP(Hatena.Star.BaseURL + "entry.json?uri=" + encodeURIComponent(this.uri), this, "bmlR"); }; e[i].bmlR = function(r) { + if (!r.entries.length) return; + r = r.entries[0]; var i, e, t = 0, n = {}, c = r.colored_stars, s = r.stars;
  • /*
     * @title ユニークスター数
     * @description 一人一星でスターをカウントします。ページをあらかた読み込み終わった後に実行して下さい。
     * @include http://*
     * @license MIT License
     */
    
    (function () {
    
    if (typeof(Hatena) == "undefined" || !Hatena.Star) return;
    
    var i, e = Hatena.Star.EntryLoader.entries;
    // スターが多すぎるページ向けの強制リセット、乱暴。
    if (Ten.JSONP.Callbacks.length) Ten.JSONP.Callbacks = [];
    
    for (i = 0; i < e.length; i++) {
    
    	e[i].bmlS = function() {
    
    		new Ten.JSONP(Hatena.Star.BaseURL + "entry.json?uri=" + encodeURIComponent(this.uri), this, "bmlR");
    
    	};
    
    	e[i].bmlR = function(r) {
    
    		if (!r.entries.length) return;
    
    		r = r.entries[0];
    
    		var i, e, t = 0, n = {}, c = r.colored_stars, s = r.stars;
    		e = (s) ? s : [];
    
    		if (c) for (i = 0; i < c.length; i++) e = e.concat(c[i].stars);
    
    		for (i = 0; i < e.length; i++) if (!n[e[i].name]) {
    
    			n[e[i].name] = 1;
    			t++;
    
    		}
    
    //		alert(this.uri + " : " + t);
    		this.star_container.appendChild(document.createTextNode(t));
    
    	};
    
    	e[i].bmlS();
    
    }
    
    })();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2010/08/27 15:48:31 - 2010-08-27
  2. 2010/08/27 15:45:35 - 2010-08-27
  3. 2010/08/26 21:23:28 - 2010-08-26
  4. 2010/08/26 18:59:44 - 2010-08-26
  5. 2010/08/26 18:20:07 - 2010-08-26