fc2ブログ
初音さんのためにみっくみく中。
“Sleipnir+SeaHorseで全サイトはてブ化”をできるようにした

⇒バージョンアップ版できました。
フローティングウィンドウ化した Social Bookmark Viewer Ver3.0


私は Sleipnir 使いなのですが、最近はてなブックマークを使い始めたので、以下の SeaHorse スクリプトを導入。はてなブックマークの情報がページの下に出てくる。

kaz::hatena - Sleipnir+SeaHorseで全サイトはてブ化v3

ところがこちらのコメント欄で報告があるとおり、特定のページで「サーバーが見つかりません」と言うエラーが出るようです。というか実際にガンガン出てきましたので修正版を作りました。とりあえず、数日いじって「サーバーが見つかりません」エラーが全く出なくなったので、公開しておきます。

どうもJapanizeでも同じ現象が発生しているようでしたので、修正方法をさくっといただきました。もう数年前にスキルが消えうせたのでほぼコピーです。

// ==UserScript==
// @name          Hatena Bookmark Comments Viewer for Sleipnir+SeaHorse Plus
// @author        sasuket
// @namespace     http://sasuket.blog7.fc2.com/
// @description   Show Hatena Bookmark's comments at the bottom of your browser.
// @include       http://*
// ==/UserScript==

function hbcv_callbackfunc(obj)
{
	var max_comment_num = 30;
	var show_tag_only = false;

	function getDate(date) {
		var y = date.getFullYear();
		var m = date.getMonth() + 1;
		var d = date.getDate();
		if (m < 10) m = "0" + m;
		if (d < 10) d = "0" + d;
		return y + "/" + m + "/" + d;
	}

	if(obj && obj.count>0)
	{
		var bm=obj.bookmarks;
		var hbm_cmt = document.getElementById('hbm_cmt');
		
		hbm_cmt.innerHTML = "<a href=\"http://b.hatena.ne.jp/entry/" + escape(document.location.href) + "\" style=\"color: red; font-weight: bold; text-decoration: underline; background-color: #ffcccc\">" + obj.count + "user" + (obj.count>1 ? "s" : "") + "</a> | <a href=\"javascript:void(0);\" style=\"color: blue; text-decoration: underline;\" onClick=\"javascript:document.getElementById('hbm_cmt').style.display='none',void(0);\">CLOSE</a><br/><br/>";
		for(i=0;i<bm.length;i++)
		{
			if(bm[i].comment || (show_tag_only && bm[i].tags.length>0))
			{
				var name = bm[i].user;
				var date = getDate(new Date(bm[i].timestamp));
				hbm_cmt.innerHTML += "<span style=\"color: black;\">" + date + "</span> <img src=\"http://www.hatena.ne.jp/users/" + name.substring(0,2) + "/" + name + "/profile_s.gif\"> <span style=\"color: blue;\">" + name + "</span> <span class=\"tags\" style=\"color: gray;\">" + bm[i].tags.join(',') + "</span> <span style=\"color: black;\">" + bm[i].comment + '</span><br/>';
			}
			if (i==max_comment_num) { break; }
		}
	}
}


(

function (c) {	//Add

	var is_called;

	if (document != null && is_called != true && self.location.href==top.location.href)
	{ 
		is_called = true;

		//ADD Start
		if (document.readyState != 'complete') {
			if (c < 8000) {
				var f = arguments.callee;
				c *= 2;
				setTimeout(function () { f(c); }, c);
			}
			return;
		}
		//ADD End

		if (self.location.href==top.location.href)
		{
			var div = document.createElement('div');
			div.id = "hbm_cmt";

			var is_done = document.getElementById("hbm_cmt");	//Add
			if (is_done != null) { return; }	//Add

			div.innerHTML = "<a href=\"javascript:void(0);\" style=\"color: blue; text-decoration: underline;\" onClick=\"javascript:document.getElementById('hbm_cmt').style.display='none',void(0);\">CLOSE</a><br/><br/>";
			div.style.cssText = "width: 90%; background-color: #f0f0f0; border: solid 1px #cccccc; margin: 5px; padding: 5px; text-align: left;";
			document.body.appendChild(div);

			var uri = top.location.href;
			script = document.createElement('script');
			script.src = 'http://b.hatena.ne.jp/entry/json/?callback=hbcv_callbackfunc&url=' + escape(uri);
			document.body.appendChild(script);
		}
	}
})(100);	//ADD

JavaScript 触るのなんて数年ぶりですよ。DOMがぼちぼち出てきた頃以来なので内容読むだけなのに戸惑う戸惑う。リファレンスくらい買いなおそうかな…(´・ω・`)

スポンサーサイト



テーマ:インターネット - ジャンル:コンピュータ