Grasemonkey用プラグイン(gmperator.js)が開発者に優しくなりました

http://coderepos.org/share/changeset/9038 をご覧になると分かると思いますが、いろいろと変更しました。

今回の変更の肝はプラグイン開発者用(g:unsigned:id:Trapezoidさんとか)にliberator.plugins.gmperatorを用意したところですかね。
Greasemonkeyで使用しているsandboxを保持できるようにして、アクセスができるようにしました。*1
簡単に確認するには、

  • :echo plugins.gmperator.currentSandbox.document.title
  • :echo plugins.gmperator.curretnContainer
  • :echo plugins.gmperator.currentSandbox.Minibuffer*2
  • :js for each(var c in plugins.gmperator.allItem){echo(c.sandbox.document.title + ": "+c.uri,true);}

とかやってみよう。
だいたいの感じはつかめるのではないかと思うけど、liberator.plugins.gmperator.currentSandboxで現在選択さているタブのページのsandboxにアクセスできる。

あと、ちょっと面白みのある機能として、ユーザスクリプトが実行されたときに、AutoCommandへGMInjectedScriptというイベントを発行するようにした。

  • :autocmd GMInjectedScript b\.hatena\.ne\.jp.*\nautopagerize :js echo("はてブでAutoPagerizeが実行されました")
  • :js plugins.gmperator.addAutoCommand('b\.hatena\.ne\.jp/','autopagerize','js echo("はてブでAutoPagerizeが実行されました")

みたいな事が可能。
だからどうした? と、実装したオイラ自身が感じているのだが....どうだろう。誰か使い道を研究してくださいな。