ChromeのUser Scriptを手抜きで書いてみた
ChromeはOperaの様にUser Scriptとして、Greasemonkey的なスクリプトが拡張機能無しに動かせるんだとか。そう話だけは聞いていて、ちょっとやりたい事が出てきたので書いてみました。
とりあえず書く
(function(){ console.log(document); })();
ただ普通にJavaScriptを書くだけでOKでした。一応グローバルスコープを汚染しないように関数に入れたけど、User Scriptのファイルのグローバルって、他のUser Scriptや拡張機能、ロードしたページのグローバルと同じなのかな?ここ調べてなかった。
ファイル名
*.user.js
Greasemonkey的なスクリプトは、コードの前に色んなメタ情報をコメントで書けるし、書かないと動かないブラウザもあるらしいけど、ChromeのUser Scriptはコードだけでも動作する。ファイル名にちょっとルールがあって.user.js
で終わらないとダメらしい。上記のコードはただの例だけど、とりあえずwindow.document
はいじれるから、DOMでどっかのサイトの気に入らない所をちょっと変えたりとかは手抜きでさくっと出来そう。
動かす
動かすのは簡単で、書いたUser Scriptを、Chromeにドラッグ&ドロップすればインストールされる。上記のように、ただコードを書いただけなら、どこかwebページを読み込む度に拡張機能と同様読み込まれて走ります。実際、拡張機能の所に「example.user.js 1.0」みたく載るし、そこで削除や有効/無効切り替えも出来る。
最近は、拡張機能ページを開いて、そこにドラッグ&ドロップしないと、インストール出来なくなったみたい。
情報源
User Scripts - The Chromium Projects
どうも公式でまとまった情報が見つからない。公式っぽいところで一応探し出せたのは、このChromiumのページで、しかも概要があるだけで、使える関数やオブジェクトやメタ情報が網羅された様な、APIリファレンス的な情報は載ってません。ただ、聞きかじった感じだとUser Scriptと拡張機能は同じ作り方をするものっぽいので、そっちを参照しろって事なのかも。
公式じゃないやつ
UserScriptの書き方メモ - Miuran Business Systems
UserScriptのブラウザごとの違い - Miuran Business Systems
検索して見つけた、そこそこまとまってる情報源。APIリファレンスとまではいかないけど、使えるメタ情報も網羅してるかは分からないけど書いてあるし、他のブラウザとの違いは参考になる。ほんとは、ここ見ながら基本使うメタ情報とかも使ってみてから書きたかったんだけど、最近時間がなくって、このまま忘れちゃうくらいなら書いておこうと思いました。今回欲しくて書いたUser Scriptは、自分とこで動けばよくって、メタ情報一切使わずに書き終えちゃたし。
書いた時期
2012-04-18頃から、もっとメタ情報とかちゃんと調べたいなと思ったまま放置だったので公開。
なので、書いてあるエントリーのリンクだけ。