
satoshiii
対象読者
- Chromeの拡張機能について知りたい
- ページアクションについて知りたい
何が書いてる?
- ページアクションの実装方法
「特定のページ」のみに有効なブラウザアクションの亜種
ブラウザアクションについてはこちらを参照

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

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

manifestファイル
permissionsを追加します。
declarativeContent:ページのコンテンツを読み取る
background処理を追加します。
バックグラウンド処理側で、Ruleを追加します。
バックグランド処理については、こちらに記載してます。

{
"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()
]
}]);
});
- ルールの削除(現時点でのルールを最初に削除):removeRules
- ルールの追加:addRules
conditionsでルールを追加(URL=”www.satoshiiiblog.com”に一致するか)
一致したら、actionsでポップアップ表示する

satoshiii
ブラウザアクションの亜種ってのが一番しっくりくると思います。
違いは、ルールがあるかないかの違いです。
特定のURLのみだけ拡張機能を使いたい場合、ページアクションを使うのが良いと思います。
ソースコードはこちらから。
https://github.com/satoNobu/chrome_ex/tree/page_action
他のChrome拡張機能についてはこちらを参照してください。
