2007-09-30

Yet Another Geekmonkey

Geekmonkey userscript injector

去年から個人的には Camino + Geekmonkey の環境で幸せに暮らしているんだけど、これを IE で再現しようとして躓いた。

課題はいくつかあって、

  • オリジナルの Geekmonkey ブックマークレットスクリプトは IE 6 では長過ぎて動かない。
  • [ this bookmarklet ] を使ってブックマークレット化したスクリプト内(伝わりますか?)で "var s=" として解釈してほしい "var%20s=" の部分でエラーが出る
    • 動くんだけど必ずエラーが出る1
  • doIt() とか void() とか定義がないので怒られる

というわけでこれらを全部解決したものを以下のリンクに置いておきます。(Fastladder だとリンクになりませんね。feed リーダはそういう仕組みになってるの多いのかも?)

<a href="javascript:(function()%7Bfor(var%20i=0;i%3Cdocument.links.length;i++)%7Bvar%20a=document.links%5Bi%5D;if(a.href.indexOf(‘.user.js’)%3E0)%7Ba.href=%22javascript:(function()%7Bs=’%22+a.href+%22’,t=’text/javascript’,d=document,n=navigator;(e=d.createElement(‘script’)).src=s;e.type=t;d.getElementsByTagName(‘head’)%5B0%5D.appendChild(e)%7D)();%22;with(a.style)%7Bborder=%222px%20groove%20%23000%22;padding=%220px%205px%202px%22;backgroundColor=%22%23ddd%22;color=%22black%22;%7D%7D%7D%7D)()">this bookmarklet</a> </div>

使い方は本家と同じです。

※ 念のため Firefox でも確認しましたがちゃんと機能しているようです。

ところで IE ってリンクツールバーっつうんですか、ここに DnD ってできないっぽいですね。最初どうすんだか分からなくて悩みました。

なぜ Geekmonkey にこだわっているかというと、localhost にスクリプトを保存してしまうタイプだとアップデートが面倒だからです。自分一人で使うだけならどうだっていいことだけど、複数の人に使ってもらおうと思うとこの Geekmonkey のアプローチはなかなか魅力的なのです。キャッシュをクリアするだけでアップデートできるんだもの。

  1. 他にも % 表記の部分はあるのに、なぜここでだけ引っかかるのかは不明 

About

例によって個人のなんちゃらです