ユニークスター数
by
pacochi
2010-08-27 [2010/08/27 15:48:31]
一人一星でスターをカウントします。ページをあらかた読み込み終わった後に実行して下さい。
@@ -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 です。