回答編集履歴
1
追記
answer
CHANGED
@@ -1,4 +1,35 @@
|
|
1
1
|
[extension#sendRequest](https://developer.chrome.com/extensions/extension#method-sendRequest)は非推奨メソッドなので、代わりにタブIDを指定して、
|
2
2
|
[tabs#sendMessage](https://developer.chrome.com/extensions/tabs#method-sendMessage)を呼び出してください。
|
3
3
|
|
4
|
-
`tabID`は`chrome.runtime.onMessage.addListener`の引数`sender`を`sender.tab.id`の形でも取得できます。
|
4
|
+
`tabID`は`chrome.runtime.onMessage.addListener`の引数`sender`を`sender.tab.id`の形でも取得できます。
|
5
|
+
|
6
|
+
---
|
7
|
+
コンパイル通してないですが、手元の開発中のChrome拡張のソースからコピペするとこんな感じでしょうか。
|
8
|
+
```JavaScript
|
9
|
+
chrome.contextMenus.create({
|
10
|
+
"title": "校正チェック",
|
11
|
+
"type": "normal",
|
12
|
+
"contexts": ["all"],
|
13
|
+
"onclick": function(info) {
|
14
|
+
chrome.tabs.getSelected(null, function(tab) {
|
15
|
+
// ★現在選択中のtab.idが必要なので、getSelectedメソッドの中にsendRequestを記述する。
|
16
|
+
alert("step1");
|
17
|
+
send_message(tab.id);
|
18
|
+
alert("step1");
|
19
|
+
});
|
20
|
+
}
|
21
|
+
});
|
22
|
+
|
23
|
+
function send_message(tabid){
|
24
|
+
chrome.tabs.sendMessage(tabid, {"action": "getName"}, (response) => {
|
25
|
+
console.log('ui');
|
26
|
+
});
|
27
|
+
}
|
28
|
+
```
|
29
|
+
content_script側
|
30
|
+
```JavaScript
|
31
|
+
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
32
|
+
// やりたいこと。
|
33
|
+
return true;
|
34
|
+
});
|
35
|
+
```
|