実現したいこと
Chrome拡張機能を作っていて(実装はMS Edge)、入力した秒数でタブをリロードし続ける機能をもたせたいです。
発生している問題・分からないこと
popup.jsのcontent-script.jsにメッセージを送るchrome.tabs.sendMessageという部分がエラーを吐いて、機能が実行できません。
エラーメッセージ
error
1Uncaught TypeError: Error in invocation of tabs.sendMessage(integer tabId, any message, optional object options, optional function callback): No matching signature.
該当のソースコード
popup.js
1const startbotton = document.getElementById('startbotton'); 2startbotton.addEventListener('click', start); 3const stopbotton = document.getElementById('stopbotton'); 4stopbotton.addEventListener('click', stop); 5window.ID =! null; 6function stop(){ 7 chrome.tabs.query( {active:true, currentWindow:true}, function(tabs){ 8 chrome.tabs.sendMessage(tabs[0].id, {message: 'stopreload'}); 9 }); 10 window.ID = null 11}; 12function start(){ 13 const second = document.getElementById("sec"); 14 const interval = second.value + '000'; 15 const CurrentTabs = [chrome.tabs.query({active:true, lastFocusedWindow:true})]; 16 if(ID){ 17 const reload = setInterval(function(){ 18 if(ID == null){ 19 clearInterval(reload); 20 }; 21 chrome.tabs.sendMessage(CurrentTabs[0].id, {message: 'reloading'}); 22 },interval); 23 } 24};
content
1chrome.runtime.onMessage.addListener(function(request){ 2 if(request.message == 'reloading'){ 3 window.location.reload(); 4 }; 5 console.log(request.message); 6});
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
https://stackoverflow.com/questions/60079291/chrome-tabs-sendmessage-error-handling-response
の回答とほぼ同じコードですが、エラーは解決しませんでした。
補足
特になし
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/01/25 23:34