回答編集履歴
1
async/promise や ; の有無を揃えた
answer
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
const tabs = await browser.tabs.query({currentWindow: true, active: true})
|
7
7
|
const tabid = tabs[0].id
|
8
8
|
browser.tabs.sendMessage(tabid , {data: 100})
|
9
|
-
.then(e => console.log(e)).catch(e => console.error(e))
|
9
|
+
.then(e => console.log(e)).catch(e => console.error(e))
|
10
10
|
// Error: Could not establish connection. Receiving end does not exist.
|
11
11
|
})
|
12
12
|
```
|
@@ -22,14 +22,14 @@
|
|
22
22
|
const tabid = tabs[0].id
|
23
23
|
await browser.tabs.executeScript(tabid, {
|
24
24
|
code: `
|
25
|
-
browser.runtime.onMessage.addListener(request => {
|
25
|
+
browser.runtime.onMessage.addListener(async request => {
|
26
26
|
console.log(request)
|
27
|
-
return
|
27
|
+
return {response: "ok"}
|
28
28
|
})
|
29
29
|
`
|
30
30
|
})
|
31
31
|
browser.tabs.sendMessage(tabid, {data: 100})
|
32
|
-
.then(e => console.log(e)).catch(e => console.error(e))
|
32
|
+
.then(e => console.log(e)).catch(e => console.error(e))
|
33
33
|
// Object { response: "ok" }
|
34
34
|
})
|
35
35
|
```
|
@@ -47,9 +47,9 @@
|
|
47
47
|
|
48
48
|
[popup.js]
|
49
49
|
```javascript
|
50
|
-
browser.runtime.onMessage.addListener(request => {
|
50
|
+
browser.runtime.onMessage.addListener(async request => {
|
51
51
|
console.log(request)
|
52
|
-
return
|
52
|
+
return {response: "ok"}
|
53
53
|
})
|
54
54
|
```
|
55
55
|
|
@@ -58,4 +58,8 @@
|
|
58
58
|
`browser.runtime.onMessage.addListener` が正しく設定できているならロード済みになるのを待ってから `sendMessage` するだけで動くのではと思います。
|
59
59
|
|
60
60
|
|
61
|
-
あと、たしか拡張機能のページだと tabs でなく runtime で通信できたと思います。(Chrome では。Firefoxは試してないです)
|
61
|
+
あと、たしか拡張機能のページだと tabs でなく runtime で通信できたと思います。(Chrome では。Firefoxは試してないです)
|
62
|
+
|
63
|
+
---
|
64
|
+
|
65
|
+
コピペの影響でコードに統一性がなかったのでちょっと修正しました
|