はてなスターの星をプロフィールアイコンに置き換えるGreasemonkey Script

最新版は http://gist.github.com/2424 からどうぞ

タイトルの通りです。はてな上でのみ動作します。

http://ss-o.net/userjs/replaceStarByProfileIcon.user.js

こんな感じ。
アイコン置き換え画面イメージ

spanタグにaltをsetAttributeしてたりとかなり力技な感じ。はてなスターの修正で動かなくなる可能性大。まあ、グリモンなんてそんなもの。

はてな以外では?

ついでなので、 つい☆すたの真似をしてはてなスターの☆画像をプロフィールアイコンに変えてみた - 準二級.jpの補足?で、はてな以外でスクリプトが貼れるblogの場合、こんな感じでグリモンを入れてなくてもいけると思うというサンプル。

<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
<!--
if(Hatena && Hatena.Star){
	var _bindStarEntry = Hatena.Star.Entry.prototype.bindStarEntry;
	Hatena.Star.Entry.prototype.bindStarEntry = function(se){
		var self = this;
		var stars = [];
		for (var i = 0,len = se.stars.length; i < len; i++) {
			var _star = se.stars[i];
			if (typeof(_star) == 'number') {
				stars.push(_star);
			} else {
				var name = _star.name;
				var img = Hatena.User.getProfileIcon(name);
				img.alt = name;
				var star = {};
				if(_star.count && _star.count > 1) {
					var c = document.createElement('span');
					c.className = 'hatena-star-inner-count';
					Ten.Style.applyStyle(c, Hatena.Star.InnerCount.style);
					c.innerHTML = _star.count;
					var s = document.createElement('span');
					s.appendChild(img);
					s.appendChild(c);
					s.setAttribute('alt',name);
					star.img = s;
				} else {
					star.img = img;
				}
				stars.push(star);
			}
		}
		se.stars = stars;
		var img = _bindStarEntry.apply(self, [se]);
	}
}
//-->
</script>

setAttributeがIEで怪しいかも。。

こういう弄り方をしてるとき、JavaScriptの面白さを実感できる。JavaScript楽しい。