Skip navigation.

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 13. June 2007, 15:50

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

Kuruma 20. June 2007, 07:39

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

Write a comment

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

Download Opera, the fastest and most secure browser