Chrome扩展消息超时



我有一个选项卡,其中包含以下内容:

<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.oMessage侦听器必须如果希望在侦听器返回后发送响应,则返回true(邮件由分机XYZ发送)。

为什么会这样,我该如何规避这个问题?提前谢谢。

它说,函数receiveMessage应该退出并返回true;。只有到那时,消息才会继续发送。如果为false,则在函数返回时中止。所以添加返回真实

参见:

当事件侦听器返回时,此函数将无效,除非您从事件侦听器返回true,表示您希望发送异步响应(这将保持消息通道对另一端直到调用sendResponse)。

来自文档:https://developer.chrome.com/extensions/runtime#event-onMessage

function receiveMessage(request, sender, sendResponse){
    sendResponse({'content': 'responseData'});
    return true;
}
chrome.extension.onMessage.addListener(receiveMessage);

相关内容

  • 没有找到相关文章

最新更新