我在chrome.notifications.onClicked.addListener
发送回复时遇到问题。
content_scripts
chrome.runtime.sendMessage({action:'openlink', url:'http://stackoverflow.com'}, function(response) {
console.log(response);
});
背景
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request && request.action === 'openlink') {
chrome.notifications.create('MyUniqueID',{
type: 'basic',
title: 'Open link',
message: request.url,
iconUrl: 'icon.jpg'
});
chrome.notifications.onClicked.addListener(function('MyUniqueID') {
sendResponse({action:'notification-clicked'}); // <--- This
chrome.tabs.create({url:request.url});
});
}
});
所以我想知道我做错了什么?
答案 0 :(得分:0)
收到邮件后,必须立即使用sendResponse作为回复发件人的方式:好的,我收到了您的邮件,没关系,所以继续使用您的代码。
当您需要发送类似情况的消息时,您需要再次调用该函数:
chrome.tabs.sendMessage
这意味着在后台和内容中使用chrome.runtime.onMessage.addListener。
答案 1 :(得分:0)
Nah,在
之后添加return true
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request && request.action === 'openlink') {
chrome.notifications.create('MyUniqueID',{
type: 'basic',
title: 'Open link',
message: request.url,
iconUrl: 'icon.jpg'
});
chrome.notifications.onClicked.addListener(function('MyUniqueID') {
sendResponse({action:'notification-clicked'}); // <--- This
chrome.tabs.create({url:request.url});
});
return true;
}
});