実現したいこと
chrome拡張で、タブを一定秒数リロードし続ける拡張機能を作っています。(実装はedge)
popup.jsからbachground.jsにリロードする秒数やそのタブのid、リロードのスタート/ストップのフラグを送り、background.jsで一定秒数ごとにリロードさせるchrome apiの機能をリロードしたいタブのcontent-sctript.jsに送る形です。
タブごとに個別にリロード、そしてそれをストップさせたいです。
発生している問題・分からないこと
それぞれのタブを個別にリロードさせることはできているのですが、ストップをさせようとすると、現在見ているタブ以外のすべてのリロードがストップしてしまいます。
現在見ているタブのみをリセットさせるようにしたいです。
そして、現在のコードでも複数のタブを個別にリロードすることを実装できているのですが、setIntervalが1つだけなのになぜ実装できたのがも知りたいです。
該当のソースコード
popup.html
popup.js
background.js
1chrome.runtime.onMessage.addListener(function (request) { 2 if (request.message == 'startreload') { 3 chrome.storage.local.get(['time', 'locate']).then((result) => { 4 const timer = result.time; 5 const tab = result.locate; 6 let paused = false 7 const timerID = setInterval(function () { 8 if (paused) { 9 clearInterval(timerID); 10 chrome.tabs.sendMessage(tab,{text : "stop"}); 11 return; 12 }; 13 chrome.tabs.sendMessage(tab,{text : "loading"}); 14 chrome.tabs.reload(tab); 15 }, timer); 16 chrome.runtime.onMessage.addListener(function (request) { 17 if (request.message == 'stopreload') { 18 paused = true; 19 }; 20 }); 21 }); 22 }; 23});
content
1chrome.runtime.onMessage.addListener(function (request) { 2 console.log(request.text); 3});
試したこと・調べたこと
上記の詳細・結果
setIntervalをタブごとに個別に立てられればと思いましたが、その方法がわかりませんでした。
補足
特になし
0 コメント