У меня есть вкладка с, среди других вещей, следующее содержание:Chrome Расширение сообщений Timeout
<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 listener должен вернуть true, если вы хотите отправить ответ после того, как слушатель вернется (сообщение отправлено расширением XYZ).
Почему это и как я могу обойти эту проблему? Заранее спасибо.
Где ваша ** 'функция DoStuff()' **? – Sudarshan
Он находится в background.js, который зарегистрирован в background-> scripts части манифеста. Это тот же файл, где находится первый фрагмент кода. – arik