|
|
||
誰か作ってるだろと思ってギャラリー検索したけど見つからなかったので作った。
https://chrome.google.com/extensions/detail/ifekfcjbnkflfndoahjigdhlhgndkncb
os0xさんが技評の連載のサンプルで作ってたやつの改造、あとGoogle Mail Checkerのソースなども参考にした。
http://gihyo.jp/dev/serial/01/chrome-extensions/0001
変更点は
一方的にスクリプトを適用するのは簡単で、bookmarkletやGreasemonkeyスクリプト相当の拡張は簡単に作れそう。
ただし、拡張側から現在表示中のタブの中身のDOMを直接参照したりは出来ないっぽかった。
tabオブジェクトのプロパティからURLやtitleは取れるが、DOMは取れない。
http://code.google.com/chrome/extensions/tabs.html#type-Tab
これはセキュリティ上の制約と言うことだろうから
と言う方法を取った。
拡張側とページ側はプロセスが分かれているので、直接アクセスすることができません。これはセキュリティ上の理由でもあり、実装上の都合でもあり。
chrome.tabs.executeScriptはcontent_script相当の処理を拡張コンテキストからプログラマブルに実行するAPIなので、ブックマークレットとはコンテキストが異なります(ページ側のコンテキストと分かれている)。
ブックマークレット(ページ側のコンテキスト)としてスクリプトを実行したい場合は、chrome.tabs.update({url:'javascript:/**/'}); のようにすると実行できます。
もう少し詳しい話はこちらに書きました http://groups.google.co.jp/group/chromium-extensions-japan/browse_frm/thread/eefc287888862afb