とりわけ、次のコンテンツを含むタブがあります。
<meta http-equiv="refresh" content="0; URL='whatsoever'" />
この手法を使用してすべてのタブを登録するプラグインも実行しています。
chrome.tabs.onUpdated.addListener(doStuff);
doStuff 関数は、タブにメッセージを送信します。
function doStuff(tabId, changeInfo, tab){
chrome.tabs.sendMessage(tabId, {'message': 'content'}, function(response){
doOtherStuff(response);
});
}
スクリプトを登録しました (ここには表示されません)。そのスクリプトでは、次のことが起こります。
function receiveMessage(request, sender, sendResponse){
sendResponse({'content': 'responseData'});
}
chrome.extension.onMessage.addListener(receiveMessage);
私の問題は、瞬時の更新が原因で応答がタイムアウトし、コンソールに次のエラーが表示されることです。
応答を送信できませんでした: リスナーが戻った後に応答を送信する場合は、chrome.extension.onMessage リスナーが true を返す必要があります (メッセージは拡張機能 XYZ によって送信されました)。
それはなぜですか? また、この問題を回避するにはどうすればよいですか? 前もって感謝します。