はてなアンテナで更新チェックを実行するブックマークレット

javascript:(function(){var S=document.createElement('script');S.src='http://borbis.web.fc2.com/hatena/HatenaAntennaForcedUpdate.user.js';document.body.appendChild(S);})();

ほんの少しでも文字数を減らしたい人は↓こちらをどうぞ。

javascript:void(document.body.appendChild(document.createElement('script')).src='http://borbis.web.fc2.com/hatena/HatenaAntennaForcedUpdate.user.js')

こちらははてなグリースモンキースクリプトを改造して作ったのでどうやらGPLライセンスらしいです。
といっても私は「GPLライセンス」ってのがチットモ判らない原始人なので何か問題があったらコメントで教えてくださいませ。


URLのファイル名を見て頂けるとすぐに気が付くと思いますが、グリースモンキー用のユーザースクリプトの形式をそのまま保っていますので、グリースモンキーにインストールしても使えますが、お薦めしません。
はてなアンテナのサーバーに多大な負荷を掛けてしまうと思われます。
必要を感じた時にだけブックマークレットから使用してください。


使い方は、いづれはてなアンテナのページ(例えば私のアンテナ)でこのブックマークレットを起動するだけです。
パソコン用の Firefox V1.5.0.3 (Greasemonkey V0.6.4)、Opera V8.54(7730)、Opera V9.00 Beta(8367)、
W-ZERO3用の Opera 8,50 for Windows Mobile BETA (1635) で動作を確認しています。


ただし、W-ZERO3用の Opera 8,50 for Windows Mobile BETA (1635) で「更新チェックを実行するブックマークレット」を使う場合には、画面の表示モードを毎回変更する必要があります。
具体的には、
新しいウインドウ(タブ)が開いたら、すぐに
「Menu」>「Display」>「Fit to screen」をタップして
「Fit to screen」のモードを解除して下さい。



これは、おそらく、 「 Opera 8,50 for Windows Mobile BETA (1635) 」 のバグだと思っていますが現在調査中っていうか、この日記を不具合報告にしてしまうつもり。


なので、参考資料として「更新チェックを実行するブックマークレット」が呼び出すユーザースクリプトの実体を↓こちらに添付します。

// Copyright (C) 2005, hatena.
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// ==UserScript==
// @name           Hatena Antenna ForcedUpdate
// @namespace      http://www.hatena.ne.jp
// @include        http://a.hatena.ne.jp/*
// ==/UserScript==

(function() {
	var uT = new Array();
	var uTcnt=0;

	var pageName = location.pathname.split("/")[2];
	if (! (pageName=="" || pageName=="simple" || pageName=="detail"))
		return;
	
	var liTags = document.getElementsByTagName("li");
	for (var i=0; i<liTags.length; i++) {
		var li = liTags[i];
		if (li.firstChild.nodeName.toLowerCase()=="script") continue;
		for (var n=1; n<li.childNodes.length ; n++) {
			if (li.childNodes[n].nodeName.toLowerCase()=="a") {
				var url = li.childNodes[n].href;
				if (url.match(/^http:\/\/a.hatena.ne.jp\/include\?/)) {
					var checkurl=url.replace(/^http:\/\/a.hatena.ne.jp\/include\?(.*)$/,"$1");
					if (checkurl) { 
						uT[uTcnt++]=checkurl;
						break;
					}
				}
			}
		}
	}
	if (uTcnt==0) return;
	var LiteralHtmHead=[
		'<HTML><SCRIPT><!--',
		'var uT = ['
	];
	var LiteralHtmBody=[
		'];',
		'var uTcnt;',
		'var Timer_ID;',
		'function checkThis(url){',
		'	var B=document.body,D=document;',
		'	B.appendChild(D.createElement("hr"));',
		'	B.appendChild(D.createTextNode(url));',
		'	B.appendChild(D.createElement("br"));',
		'	var oIframe = D.createElement("iframe");',
		'	oIframe.src="http://a.hatena.ne.jp/check?robots=1&fixpage=1&url="+escape(url);',
		'	oIframe.width="100%";',
		'	oIframe.height="60%";',
		'	B.appendChild(oIframe);',
		'	B.appendChild(D.createElement("br"));',
		'}',
		'function forcedCheck(){',
		'	if(uTcnt<uT.length)checkThis(uT[uTcnt++]);',
		'	else clearInterval(Timer_ID);',
		'}',
		'function fCheckMain(){',
		'	uTcnt=0;',
		'	Timer_ID=setInterval("forcedCheck()",2000);',
		'}',
		'/\/ --></SCRIPT><BODY onload=fCheckMain()></BODY></HTML>'
	];
	var W=window.open();
	with(W.document){
		for(var i=0;i<LiteralHtmHead.length;i++)write(LiteralHtmHead[i]+'\n');
		for(var i=0;i<uT.length;i++)write('"'+uT[i]+'"'+((i!=uT.length-1)?',':'')+'\n');
		for(var i=0;i<LiteralHtmBody.length;i++)write(LiteralHtmBody[i]+'\n');
		close();
	}
})();


追記

            
  消えました。
            

はてなアンテナ」に対してのアタックに利用される可能性があるので、不本意ながら、公開を自主規制いたします。

↑の「更新チェックを実行するブックマークレット」も既にリンク切れに致しました。

追記の追記(20060507)
Opera 8.50 for Windows Mobile BETA (1635) 」のIFRAMEに関しての確認・テスト用のブックマークレットを別途作成しました。

javascript:(function(){var S=document.createElement('script');S.src='http://borbis.web.fc2.com/hatena/IframeTest.js';document.body.appendChild(S);})();