ユニークスター数

    @@ -5,47 +5,42 @@ * @license MIT License */ -(function () { +/* +スターの多いページでは、実行結果が出るまで時間がかかります。まずはスターの少なめなページで動作確認をして下さい。 -if (typeof(Hatena) == "undefined" || !Hatena.Star) return; +IE 系タブブラウザで実行する場合、ものによってはエンコード後の文字数でカウントされて、文字数オーバーになったりするみたいです。 +スクリプトが実行されない場合は、下の「Packed」というリンクの内容に javascript: を付けたものに置き換えて下さい。 +*/ -var i, e = Hatena.Star.EntryLoader.entries; -// スターが多すぎるページ向けの強制リセット、乱暴。 -if (Ten.JSONP.Callbacks.length) Ten.JSONP.Callbacks = []; - -for (i = 0; i < e.length; i++) { +if (typeof(Hatena) == "object") (function () { - e[i].bmlS = function() { +var i, e, s = Hatena.Star, t = Ten.JSONP; +// スターが多すぎるページ向けの強制リセット、乱暴。 +// if (t.Callbacks.length) + t.Callbacks = []; - new Ten.JSONP(Hatena.Star.BaseURL + "entry.json?uri=" + encodeURIComponent(this.uri), this, "bmlR"); - - }; +if (s && (e = s.EntryLoader.entries)) for (i = 0; i < e.length; i++) { e[i].bmlR = function(r) { - if (!r.entries.length) return; - - r = r.entries[0]; + if (r = r.entries[0]) { - var i, e, t = 0, n = {}, c = r.colored_stars, s = r.stars; - e = (s) ? s : []; + 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); + 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]) { + for (i = 0; i < e.length; i++) if (!n[e[i].name] && ++t) n[e[i].name] = 1; - n[e[i].name] = 1; - t++; + // alert(this.uri + " : " + t); + this.star_container.appendChild(document.createTextNode(t)) } -// alert(this.uri + " : " + t); - this.star_container.appendChild(document.createTextNode(t)); - }; - e[i].bmlS(); + new t(s.BaseURL + "entry.json?uri=" + encodeURIComponent(e[i].uri), e[i], "bmlR") } -})(); +})()
  • /*
     * @title ユニークスター数
     * @description 一人一星でスターをカウントします。ページをあらかた読み込み終わった後に実行して下さい。
     * @include http://*
     * @license MIT License
     */
    
    /*
    スターの多いページでは、実行結果が出るまで時間がかかります。まずはスターの少なめなページで動作確認をして下さい。
    
    IE 系タブブラウザで実行する場合、ものによってはエンコード後の文字数でカウントされて、文字数オーバーになったりするみたいです。
    スクリプトが実行されない場合は、下の「Packed」というリンクの内容に javascript: を付けたものに置き換えて下さい。
    */
    
    if (typeof(Hatena) == "object") (function () {
    
    var i, e, s = Hatena.Star, t = Ten.JSONP;
    // スターが多すぎるページ向けの強制リセット、乱暴。
    // if (t.Callbacks.length)
     t.Callbacks = [];
    
    if (s && (e = s.EntryLoader.entries)) for (i = 0; i < e.length; i++) {
    
    	e[i].bmlR = function(r) {
    
    		if (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] && ++t) n[e[i].name] = 1;
    
    			// alert(this.uri + " : " + t);
    			this.star_container.appendChild(document.createTextNode(t))
    
    		}
    
    	};
    
    	new t(s.BaseURL + "entry.json?uri=" + encodeURIComponent(e[i].uri), e[i], "bmlR")
    
    }
    
    })()
  • 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