【Chrome拡張機能】ページアクション

satoshiii
satoshiii

対象読者

  • Chromeの拡張機能について知りたい
  • ページアクションについて知りたい

何が書いてる?

  • ページアクションの実装方法

ページアクションとは?

「特定のページ」のみに有効なブラウザアクションの亜種

ブラウザアクションについてはこちらを参照

Chrome拡張ブラウザアクション【Chrome拡張機能】ブラウザアクション

サンプルと完成後の動作

ルールに一致しない場合、拡張機能が使えません。

URLが一致する場合、拡張機能が使えます。

コードと解説

manifestファイル

permissionsを追加します。

declarativeContent:ページのコンテンツを読み取る

background処理を追加します。

バックグラウンド処理側で、Ruleを追加します。

バックグランド処理については、こちらに記載してます。

【Chrome拡張機能】バックグランドページ
{
  "manifest_version":2,
  "name":"Chrome ex page action",
  "version":"1",
  "permissions":["declarativeContent"],
  "background": {
    "scripts": ["background.js"]
  },
  "page_action":{
    "default_title":"satoshiiiブログのみ有効だよ",
    "default_popup":"popup.html"
  }
}

HTML

<!DOCTYPE html>
<html lang="ja">
<meta charset="UTF-8" />
<head>
    <title>ああああ</title>
</head>

<body>

<p id="hello">Hello!こんにちわ</p>

</body>
</html>

JavaScriptファイル

chrome.declarativeContent.onPageChanged.removeRules(undefined, function() {
    chrome.declarativeContent.onPageChanged.addRules([{
        conditions: [
            new chrome.declarativeContent.PageStateMatcher({
                pageUrl: {hostEquals: 'www.satoshiiiblog.com'},
            })
        ],
        actions: [
            new chrome.declarativeContent.ShowPageAction()
        ]
    }]);
});
  1. ルールの削除(現時点でのルールを最初に削除):removeRules
  2. ルールの追加:addRules
    conditionsでルールを追加(URL=”www.satoshiiiblog.com”に一致するか)
    一致したら、actionsでポップアップ表示する

まとめ

satoshiii
satoshiii

ブラウザアクションの亜種ってのが一番しっくりくると思います。

違いは、ルールがあるかないかの違いです。

特定のURLのみだけ拡張機能を使いたい場合、ページアクションを使うのが良いと思います。

ソースコードはこちらから。
https://github.com/satoNobu/chrome_ex/tree/page_action

他のChrome拡張機能についてはこちらを参照してください。

Chrome【Chromeの拡張機能】開発 まとめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です