Browser Actionは常にアイコンが表示されるのに対し、Page Actionは特定のWebサイトのみアイコンを表示させます。
必要なことは以下の2つ。
- tabが切り替わった通知を受けるためにListenerを登録
- manifest.jsonにpage_actionを記述
tabが切り替わった通知を受けるためにListenerを登録
Listenerに登録するモジュールをJavaScriptファイルに記述します。
background.js
// Called when the url of a tab changes. function checkForValidUrl(tabId, changeInfo, tab) { console.log("checkForValidUrl"); if (tab.url.indexOf("http://www.blogger.com/blogger") > -1) { // ... show the page action. chrome.pageAction.show(tabId); } }; // Listen for any changes to the URL of any tab. chrome.tabs.onUpdated.addListener(checkForValidUrl);
上記のようなJavaScriptを作成し、manifest.jsonの"background"に記述します。
Chromeのtab変更通知を受けるためにchrome.tabsをコールするので"permissions"も追加
"background": { "scripts": ["background.js"] }, "permissions": [ "tabs","http://*/*" ],
manifest.jsonにpage_actionを記述
Page Actionを指定するために、browser_actionからpage_actionに変更します。
tabのListener登録を含めると、以下のようなmanifest.jsonとなります。
{ "name": "Page Action Extension", "version": "1.0", "manifest_version": 2, "description": "Page Action Extension Test.", "background": { "scripts": ["background.js"] }, "permissions": [ "tabs","http://*/*" ], "page_action": { "default_icon": "icon.png", "default_title": "this URL!", "default_popup": "popup.html" } }
正常に動作すると、以下のようにアドレスバーの右端にアイコンが表示されます。
0 件のコメント:
コメントを投稿