微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Google chrome扩展程序传递的消息

如何解决通过Google chrome扩展程序传递的消息

| 对此有一些问题,但没有一个满足我的需求。我已经创建了扩展程序,并且试图在内容脚本和options.html之间进行通信。我一直在尝试使用
chrome.extension.onRequest.addListener
chrome.extension.sendRequest
,但都没有用。不执行命令或执行任何操作。这是我的代码内容脚本:
chrome.extension.sendRequest({command:value},function(response) {});
options.html
chrome.extension.onRequest.addListener(
function(request,sender,sendResponse) {
    alert(\"in onRequest request.command = \" + request.command);
    decide_command(trim(request.value));
    sendResponse({});
});
没有执行任何警报,也没有执行任何功能。我什至尝试使用该消息传递API页面中的示例,但它没有触发任何警报或任何事件。我尝试了很多不同的组合,例如将扩展ID放入sendRequest中,以确保其到达正确的位置,我排除了sendResponse以确保其结束的速度不会太快。我到处都有调试警报,除了内容脚本中send request命令之前和之后的警报之外,没有其他警报被触发。所以我认为它要么执行失败,要么失败。我已经为此工作了几天,对此将不胜感激。     

解决方法

我相信Chris已经注意到了一个问题:扩展程序的选项页并非一直运行,因此无法用于接收或生成消息。后台页面始终处于运行状态,始终可用,因此始终能够响应消息,因此更适合此类通信。 我建议稍微修改扩展程序的体系结构,以使内容脚本收集相关信息并将其发送到后台页面。打开选项页面时,它可以从后台页面请求状态。然后,后台页面负责以合理的方式维护状态,并负责在扩展的其他部分之间来回推送信息。 那有意义吗?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。