質問編集履歴

2

発生しているエラー及び補足情報の追加

2017/12/11 15:06

投稿

BOLSTUMP
BOLSTUMP

スコア13

test CHANGED
File without changes
test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- ```ここに言語を入力
31
+ ```javascript
32
32
 
33
33
  //サイドバー内
34
34
 
@@ -60,7 +60,7 @@
60
60
 
61
61
  ```
62
62
 
63
- ```ここに言語を入力
63
+ ```javascript
64
64
 
65
65
  // background側
66
66
 
@@ -105,3 +105,29 @@
105
105
  何とか動かす方法をご存知の方いらっしゃいましたらご教授頂けると幸いです。
106
106
 
107
107
  よろしくお願いいたします。
108
+
109
+
110
+
111
+ ※追記
112
+
113
+ 以下の通りエラーメッセージが出ていました
114
+
115
+ ```
116
+
117
+ browser.ownerGlobal is null
118
+
119
+ ```
120
+
121
+ コンソールに様々なメッセージが出て確認用のログが埋もれてしまうのでエラー表示を切っていたので見逃していました。お恥ずかしいです。
122
+
123
+ エラーについて調べてみましたが、どういったエラーなのか分かりませんでした。
124
+
125
+ お分かりの方いらっしゃったら教えていただけると幸いです。
126
+
127
+
128
+
129
+ その他補足情報
130
+
131
+ ---
132
+
133
+ Firefox verson 57.0.2(64bit)

1

現在実装しようとしている方法の追加

2017/12/11 15:06

投稿

BOLSTUMP
BOLSTUMP

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- サイドバー開閉について質問させてください。
1
+ Firefox WebExtensionsのサイドバー開閉の実装について質問させてください。
2
2
 
3
3
  現在browserActionのボタンからサイドバーを開閉する拡張を作成しています。
4
4
 
@@ -22,6 +22,86 @@
22
22
 
23
23
 
24
24
 
25
+ ※追記
26
+
27
+ 現在呼び出されるサイドバー内から以下の形でメッセージを送ることで実現しようとしています。
28
+
29
+
30
+
31
+ ```ここに言語を入力
32
+
33
+ //サイドバー内
34
+
35
+ // サイドバーが開かれた時の処理
36
+
37
+ window.addEventListener('DOMContentLoaded', initialize, {once: true});
38
+
39
+ function initialize() {
40
+
41
+ console.log("OPEN");
42
+
43
+ browser.runtime.sendMessage({flag: true});
44
+
45
+ }
46
+
47
+
48
+
49
+ // サイドバーが閉じられた時の処理
50
+
51
+ window.addEventListener('unload', finalize, {once: true});
52
+
53
+ function finalize() {
54
+
55
+ console.log("CLOSE");
56
+
57
+ browser.runtime.sendMessage({flag: false});
58
+
59
+ }
60
+
61
+ ```
62
+
63
+ ```ここに言語を入力
64
+
65
+ // background側
66
+
67
+ var sidebar_open_flag = true; //サイドバー開閉フラグ true=open false=close
68
+
69
+
70
+
71
+ // サイドバーの開閉処理
72
+
73
+ chrome.browserAction.onClicked.addListener((tab) => {
74
+
75
+ if(sidebar_open_flag) {
76
+
77
+ browser.sidebarAction.close();
78
+
79
+ } else {
80
+
81
+ browser.sidebarAction.open();
82
+
83
+ }
84
+
85
+ });
86
+
87
+ // サイドバーが開かれたメッセージを受け止める
88
+
89
+ browser.runtime.onMessage.addListener(function(request, sender, sendResponse) {
90
+
91
+ sidebar_open_flag = request.flag;
92
+
93
+ });
94
+
95
+ ```
96
+
97
+ しかしunload時にメッセージが送られない事態に陥っています。
98
+
99
+ コンソールには「CLOSE」が表示されるのでイベント自体は動いているようです。
100
+
101
+
102
+
103
+ unload時にはsendMessageが使えないなどの仕様なのでしょうか?
104
+
25
- どのようにれば上記のような動作実現できるかご教授頂ければ幸いです。
105
+ 何とか動か方法をご存知の方いらっしゃいましたらご教授頂けると幸いです。
26
106
 
27
107
  よろしくお願いいたします。