バックグラウンドスクリプトは拡張機能が読み込まれるとすぐにすぐに読み込まれるのですが、
パッケージ化されていない拡張機能を読み込んだタイミングではアクティブなタブが"chrome://extensions/"タブなので
.sendMessage()
の送信先のタブにコンテントスクリプトが読み込まれていないのが原因ではないでしょうか。
たとえば下記のようにコードを変更し、"chrome://"ではない普通のページをアクティブなタブにした状態で拡張機能のボタンをクリックするとうまくメッセージを送信できました。
background.js
js
1chrome.browserAction.onClicked.addListener(function(tab) {
2 // 中身は質問文そのまま
3 chrome.tabs.query({
4 active: true,
5 currentWindow: true
6 }, function (t) {
7 chrome.tabs.sendMessage(t[0].id, {action: 'entry'});
8 });
9});
content_script.js
js
1// 質問文そのまま
2chrome.runtime.onMessage.addListener( (mess, sender, sendResponse) => {
3 console.log('Get message!');
4});
manifest.json
json
1{
2 "manifest_version": 2,
3 "name": "test",
4 "version": "0",
5 "browser_action": {},
6 "background": {
7 "scripts": [ "background.js" ],
8 "persistent": false
9 },
10 "content_scripts": [
11 {
12 "matches": [ "*://*/*" ],
13 "js": [ "content_script.js" ]
14 }
15 ]
16}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 23:44