Kuruman Log

かつて自分のカスタムログを書きためていたこともあった

Docufarmをもっと活用するためのUserJS

,

現在Docufarmはサービスを終了しています。PDFについてはlevaさんの提供するツールを代わりに使用することができます。涼崎さんがブックマークレットを公開していますのでこちらも併せてご覧下さい。

Hidetoさんのエントリーを見て感動したのでUserJSにしてみた。Docufarm素晴らしい。

導入すると概ね良い具合にリンクをDocufarmへ飛ばすようになるはずです。トリッキーなことはしていないので、Greasemonkeyとしても動作するかと思いますが、こちらは未確認。
redirectToDocufarm.user.js
よく考えたらこれってブックマークレットで良いよね、という事に気づいた。で、できたのがこんなブックマークレット。
javascript:(function(){var e=new Array('pdf','ppt','doc','rtf','ps');var l;for(var i=0;l=document.links[i];i++){if (l.href.indexOf('www.docufarm.com')<0){for(var j=0;j<e.length;j++){if(l.href.lastIndexOf(e[j])>=1){l.href='http://www.docufarm.com/view.jsp?url='+l.href;break;}}}}})();

残念ながらブックマークレットをそのままmy.operaには書けないようなので別の場所に作っておく。

以下に一応古い内容も残しておく。

一般的にはこれを使うのがよいでしょう。が、常時リンクをスキャンするのはレスポンスの低下を招く。そんなわけで僕は以下のUserJSを導入している。 redirectToDocufarm_manual.user.js こちらはグローバル変数を汚染するのであまり美しくはない。けれど、こちらのUserJSでは任意のタイミングでリンクの書き換えを行えるようになる。具体的には、javascript:kurumanorg_redirectToDocufarm();を読み込んだとき。毎度毎度PDFやPPTを見るわけではないので、こういった方法の方がスマートな気がするのです。 ところで、これ書いてるときにこんな風にソースを書きたい衝動に駆られた。
if (typeof(kurumanorg) == 'undefined') {
  function kurumanorg() {};
}
要するに複数のUserJSで定義するメソッドをすべて一つの変数の下に置きたいなぁ、と。すべてのUserJSの冒頭で未定義の時にのみkurumanorgとか云う謎関数をさっきのコードのような雰囲気で定義して、そのほかはすべてprototypeでぶら下げれば何となくきれいな気がする。けど、良い方法が浮かばなかった。

0 ctrlに何か割り当てようよという話を書いたTwitter/opera_jpのプロファイルイメージをおぺらたんに変更するユーザスタイルシート

Comments

Hideto Wednesday, June 13, 2007 3:50:05 PM

user.jsいただきました。Googleの検索結果も一網打尽で気持ちいいですね。

Kuruma Wednesday, June 20, 2007 7:39:05 AM

素敵ツールのご紹介に感謝してます!
ほんとこれは気持ちいいです。

Write a comment

You must be logged in to write a comment. If you're not a registered member, please sign up.