はてブにニコニコ動画サムネを表示するGreasemonkeyスクリプトをSeaHorse移植
Nico Nico Thumbnail in Hatena BookmarkをSeaHorseに移植したというか、
SeaHorseスクリプトとして使用できるようなローダーを作りました。
元のグリモンをSleipnir/plugins/seahorse/NicoThumbnailForHatebu配下に配置、
id:amachangのXPathライブラリをSleipnir/plugins/seahorse/lib配下に配置します。
この際、(2007年11月28日現在)javascript-xpath-latest.jsの39行目にtypoがあるので、
var convigValueをvar configValueに直しておかないと、リロード時はともかく初回表示時に正常動作しません。
// ==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になるまで実行を遅らせるようにしておきました。
ひょっとしたらまったく必要ないかもしれません。