teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

revise content.js

2022/05/05 05:34

投稿

itagagaki
itagagaki

スコア8402

answer CHANGED
@@ -51,4 +51,30 @@
51
51
  そして開かれたページに自動的に挿入される `content.js` では自分の`location`は当然読めますので、そこからこのパラメーターを拾うことができるし、開いているページのDOMにそれをセットしたりすることもできるはずです。
52
52
 
53
53
  `"host_permissions": ["*://*/*"]` は任意のタブのどんなURLでも取得するために必要でした。
54
- もしこの拡張機能を配布するのでしたら、これはちょっと危険視されるかもしれませんね…。
54
+ もしこの拡張機能を配布するのでしたら、これはちょっと危険視されるかもしれませんね…。
55
+
56
+ (追記)
57
+
58
+ コメントを受けて
59
+
60
+ content.js
61
+
62
+ ```
63
+ const start = ()=>{
64
+ let arg = new Object;
65
+ let pair = location.search.substring(1).split('&');
66
+ for (let i = 0; pair[i]; i++) {
67
+ let kv = pair[i].split('=');
68
+ arg[kv[0]] = kv[1];
69
+ }
70
+ if (arg['jupeezeURL']) {
71
+ document.getElementById('i44').value = arg['jupeezeURL'];
72
+ document.getElementsByClassName('VfPpkd-Bz112c-LgbsSe yHy1rc eT1oJ DiOXab zhBWDc Pk9dvb')[0].click();
73
+ window.close();
74
+ }
75
+ };
76
+
77
+ window.onload = () => start();
78
+ ```
79
+
80
+ こんな風にしたらどうですか?

1

ちょっと追記など

2022/05/05 03:01

投稿

itagagaki
itagagaki

スコア8402

answer CHANGED
@@ -38,7 +38,7 @@
38
38
  let arg = new Object;
39
39
  let pair = location.search.substring(1).split('&');
40
40
  for (let i = 0; pair[i]; i++) {
41
- var kv = pair[i].split('=');
41
+ let kv = pair[i].split('=');
42
42
  arg[kv[0]] = kv[1];
43
43
  }
44
44
  if (arg['jupeezeURL']) {
@@ -49,3 +49,6 @@
49
49
  新しいタブで開くページのURLに勝手に `jupeezeURL` というパラメーターを追加しています。これでサーバーがエラーを返すようだとダメですが、幸い無視してくれているようでした。
50
50
 
51
51
  そして開かれたページに自動的に挿入される `content.js` では自分の`location`は当然読めますので、そこからこのパラメーターを拾うことができるし、開いているページのDOMにそれをセットしたりすることもできるはずです。
52
+
53
+ `"host_permissions": ["*://*/*"]` は任意のタブのどんなURLでも取得するために必要でした。
54
+ もしこの拡張機能を配布するのでしたら、これはちょっと危険視されるかもしれませんね…。