0

我构建了一个 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完全相同)sendRequestsendMessage

内容.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 中做同样的事情?

4

0 回答 0