我构建了一个 Chrome 扩展程序,sendRequest
用于将消息从内容页面发送到弹出窗口,并获得回调。
内容.js:
chrome.extension.sendRequest(data, function (result){
// here the result should be a boolean
if (result){
alert("ok");
}
});
popup.js:
chrome.extension.onRequest.addListener(function (request, sender, callback) {
// Here I have some asynchronous work
setTimeout(function(){
callback(true);
}, 500);
}
所有这一切都很好。
但sendRequest
已弃用,需要替换为sendMessage
(为了支持 Firefox)
我做了几乎相同的事情(文档与Mozilla docsendMessage
完全相同)sendRequest
sendMessage
内容.js:
chrome.runtime.sendMessage(data, function (result) {
// here the result should be a boolean
if (result){
alert("ok");
}
});
popup.js:
chrome.runtime.onMessage.addListener(function (message, sender, callback) {
// Here I have some asynchronous work
setTimeout(function(){
callback(true);
}, 500);
}
但现在,它不起作用。侦听器函数一结束,就会调用不带参数的回调,并且异步函数无法发送其结果。
有没有办法在 Firefox 中做同样的事情?