SafariでUser JavaScriptを使う。

FirefoxgreasemonkeyのようなUser JavaScriptSafariで使うことができるCreammonkeyを試してみた。

当然JavaScript自体が完全互換ではないし、Greasmonkey用のスクリプトFirefoxで、しかもローカル動作が前提なので盛大にエラーを吐き出すものもあるが、コンセプト部分のコアコードは結構動くスクリプトが多い。
例えば、Japanizeでは再帰置換で使ってるreplaceのコードの部分でちょっと問題があったりするが、おおむね良好。ローカルにスクリプトを引っ張ってきて、Safariで問題が発生しにくいように調整してみたりする。

うん、これはおもしろいよ。なんだか、仲間入りできた感じ。

追記

Japanize開発者のKazuhoさんがブックマークで反応されているので、reproduce。
bug reproduce for Japanize

/^(?d+) (Jan|Feb| snip...>)$/ => $1$R1

のような$R?dを使った正規表現再帰置換処理で、replace (/[pattern]/g, function(){})のfunctionがSafariではon the flyに処理されず、そのまま画面に出現します。

Creammonkeyでインストールしたスクリプト編集

Creammonkeyでインストールしたスクリプト~/Libraries/Applications Support/Creammonkey/に保存されています。
Japanizeではサーバのスクリプトを読み込むので、core.jsをダウンロードしてelem.src = 'file:///Users/taiyo/Desktop/core.js';のようにローカルで編集することでwork aroundを試みることができます。

修正していただきました

開発者のkazuhookuさんに修正していただきました。
感謝。