ChromeExtensions 基礎

頭の固い業務ページでの単純作業に時間を割かれることが耐えがたく、
シェルスクリプトのように拡張機能を使おうと思い立ち、数日前に入門した。

誤認があるかも知れない。


何ができるのか

大きくわけて2つ。後者をやりたい。

他にもいろいろできるが、話が逸れるので割愛。


何をしたいのか

  • ページへのDOM操作やCSS挿入


この記事の目標

  • 基礎的な概要と単語の整理

拡張機能の起動契機

大きく分けて4種類

  • browser_action: アドレスバーの右にアイコンを表示
  • page_action: 特定のページのみアドレスバーにアイコン表示
  • contextMenus: 右クリックのメニュー表示

browser_action: アドレスバーの右にアイコンを表示

  • ポップアップ(HTML)を表示できる
  • background からイベントを受けると、特定の条件に反応させることができる

page_action: 特定のページのみアドレスバーにアイコン表示

  • background がイベントを受けて、アイコンを表示させる
  • background がイベントを受けて、クリック時に動作させる

content_scripts: 特定の条件のみスクリプト実行

  • Manifest に規定した URL にマッチした時に、スクリプトを実行させることができる

contextMenus: 右クリックのメニュー表示

  • background に規定した条件にマッチした時に、右クリックのメニューを表示させることができる

Manifest.json

  • "browser_action" と "page_action" は二者択一(両方を持つ拡張機能をつくることはできない)

background

  • Chrome のイベントをハンドルできる。
  • 基本的に、常に動作する(メモリ消費する)。

Event Pages

  • "persistent": false とすると、必要な時だけに動作するようになる(メモリ消費を抑えられる)。
  • ただし、右クリックのメニュー表示はできなくなるので注意。

chrome.* APIs

  • Chrome のイベントをハンドルできる
  • 公開されている各機能を制御できる

参考

公式(英語)

ドットインストールさんの素晴らしい教材。
ここを見れば、約1時間でつくりかたの基本が学習できます。
3分以内の動画、全20回。
・動画の閲覧: 会員登録不要
・進捗の管理等: 会員登録必要(無料)
・ソースのダウンロード等: プレミアム会員登録必要(有料)