はてブにニコニコ動画サムネを表示するGreasemonkeyスクリプトをSeaHorse移植

Nico Nico Thumbnail in Hatena BookmarkSeaHorseに移植したというか、
SeaHorseスクリプトとして使用できるようなローダーを作りました。
元のグリモンをSleipnir/plugins/seahorse/NicoThumbnailForHatebu配下に配置、
id:amachangXPathライブラリSleipnir/plugins/seahorse/lib配下に配置します。
この際、(2007年11月28日現在)javascript-xpath-latest.jsの39行目にtypoがあるので、
var convigValueをvar configValueに直しておかないと、リロード時はともかく初回表示時に正常動作しません。


ローダーとして使用するSeaHorseスクリプトは↓

// ==UserScript==
// @name           Nico Nico Thumbnail in Hatena Bookmark Loader
// @namespace      http://d.hatena.ne.jp/monjudoh/
// @include        http://b.hatena.ne.jp/*
// @type           SleipnirScript
// @version        0.1
// ==/UserScript==

(function(){
	var fso = new ActiveXObject('Scripting.FileSystemObject');
	var base = sleipnir.ScriptFullName.replace(sleipnir.ScriptName, '').replace(/\.js$/, '');

	var file = fso.OpenTextFile(base + 'lib/javascript-xpath-latest.js');
	var src = file.ReadAll();
	file.Close();
	
	file = fso.OpenTextFile(base + 'NicoThumbnailForHatebu/14606.user.js');
	src += file.ReadAll();
	file.Close();
	fso = null;

	try {
		var funcStr = '(function() {';
		funcStr += 'if(document.readyState != "complete"){';
		funcStr += 'setTimeout(arguments.callee,200);'
		funcStr += 'return;}';
		funcStr += src;
		funcStr += '})()';
		_window.execScript(funcStr);
	}catch(e){}
})();

ローカルに配置したjsファイルの読み込みと実行については、↓こちらを参考にさせていただきました。
http://d.hatena.ne.jp/tetsuarossa/20071114/p1
後は、調べてみたら、SeaHorse実行タイミングにおいて、
document.readyStateが必ずしもcompleteではなくinteractiveの場合もあるそうなので、
念のためcompleteになるまで実行を遅らせるようにしておきました。
ひょっとしたらまったく必要ないかもしれません。