如何通过Chrome扩展程序接收外部API的数据?

时间:2017-04-15 15:15:26

标签: google-chrome-extension

我尝试创建一个使用其他API的Chrome扩展程序。所以我的内容脚本获取DOM中的数据并向API询问结果(在background.js中)

因此,我从contentscript.jsbackground.js发送了一条消息,等待sendResponse以来我的API响应。但是,我有一个问题,响应总是undefined因为contentscript.js收到回复,但我还没有发送回复。

contentscript.js:

chrome.runtime.sendMessage({type: "new", data: {/* ... */}}, function(response) {
    console.log(response);
});

background.js:

chrome.runtime.onMessage.addListener(function(msg, _, sendResponse) {
    if (msg.type == "new") {

        execute(msg.data).then(function (response) {
            sendResponse(response);
        });
    }
});

function execute(data){
    return new Promise( function (resolve, reject){

        /* ... */

        $.ajax(options).done(function(data) {
            return resolve(data);
        });
    });

}

解决方案是什么?

我需要在我的脚本和背景中添加onMessageListener,所以,我不使用sendResponse?

由于

0 个答案:

没有答案