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がぼちぼち出てきた頃以来なので内容読むだけなのに戸惑う戸惑う。リファレンスくらい買いなおそうかな…(´・ω・`)

スポンサーサイト



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

コメント
この記事へのコメント
はじめまして。
「“Sleipnir+SeaHorseで全サイトはてブ化”をできるようにした」
を使わせていただきました。
今まで、特定のページで「サーバーが見つかりません」が出ていたのですが、おかげさまで、出なくなりました。

これで、快適に全サイトはてブが楽しめます(つд`)

ありがとう・・・

ところで、これってどういう対策をされているのでしょうか?
Seahorse作るときに、引っかかるかもしれないのですが、Javascirpt関係は疎くて・・・
2007/03/09(金) 09:51:10 | URL | TOBY #3h.BNphY[ 編集]
>TOBY さん

私も人の受け売り(Japanize)なのですが、変更内容を簡単に言えば、ページを全部読み込むまで待ってから、本処理に入るようにしています。

Add とかコメントしている部分がそうです。




そのうち時間があったらページによって変な位置に表示されて見にくなるのを直したいなあ。
javascript じゃなくて CSS の知識になってくるんでしょうが。
2007/03/10(土) 00:04:35 | URL | サスケット #UywJPozU[ 編集]
はじめまして
Social Bookmark Viewerをいつも使わせていただいております。
一つ質問したいのですがこのスクリプトでは適用除外URLの指定とか
できないのでしょうか?
方法があるならお教え下さい

自分のサイトなどのブックマークコメントは
身勝手ながらもなるたけ見たくないもので・・・
2007/09/24(月) 18:29:52 | URL | えいじ #-[ 編集]
それはseahorseの標準機能でいけますよ。

// @include http://*

の次の行(どこでもいいけど)に

// @exclude http://www.example.com/*

のように貴方のサイトを指定してください。



余談ですが、Japanize(翻訳スクリプト)をONにしているとGoogleリーダーがバグ?るため
// @exclude http://www.google.*/reader/*
と追記してGoogleリーダーでJapanize が動かないようにしてます。
2007/09/26(水) 23:49:46 | URL | サスケット #UywJPozU[ 編集]
早速出来ました
これで今までの憂鬱から解放されそうです。

複数のサイトも指定でき
他スクリプトにも応用出来大変勉強になりました。
本当にありがとうございました
2007/09/27(木) 15:13:45 | URL | えいじ #xyyekUkk[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
サスケット さんの↓こちらに触発されて、作ってみました。ひたすら無題 Ver2.0 | “Sleipnir+SeaHorseで全サイトはてブ化”をできるようにした私は Sleipnir 使いなのですが、最近はてなブックマークを使い始め
2007/03/02(金) 00:00:56 | シム宇宙の内側にて