ポップアップが設定されている場合、ボタンをクリックすると、ポップアップ ページがロードされて表示されます。同時に、onClicked
イベントはトリガーされません。したがって、ポップアップが設定されているときにクリックを検出する場合は、popup.js にコードを記述します。
例: ポップアップのないコードが次のようになっている場合:
// background/event page
chrome.pageAction.onClicked.addListener(function(tab) {
// Do something
});
次に、背景/イベントページからそのコードを削除し、popup.js にコードを配置します。
document.addEventListener('DOMContentLoaded', function() {
// Do something, e.g. send a message to content or background script
});
バックグラウンド ページにロジックを保持することが重要な場合 (たとえば、http 要求やデータベース アクセスなどを開始する場合)、メッセージ パッシングを使用して、ボタンがクリックされていることをバックグラウンド ページに通知します。
// popup.js
chrome.runtime.sendMessage('pageActionClicked');
// background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
if (message === 'pageActionClicked') {
// Do something
}
});
現在のタブ (イベントのtab
引数など) を知る必要がある場合は、次を使用します。pageAction.onClicked
chrome.tabs.query
// Inside the DOMContentLoaded or onMessage event listener:
chrome.tabs.query({
active: true,
lastFocusedWindow: true
}, function(tabs) {
var tab = tabs[0];
// Do something with tab
});