1

现在我通过在后台创建 iframe 来实现解决方案,因此它处理请求,但是它非常不受信任的解决方案 + 过度杀伤,我有大约 400 个文件,每个文件都使用 sendRequest 方法,我无法将它们组合成一个文件,因为它们是通过依赖加载器(Pub Sub 架构)加载的,现在有另一个解决方案,我已经让他进行概念验证,在后台使用 MessageChannel 和 postMessage,但问题是对于 contentScript 或在我的定义前台,我仍然需要使用 chrome API 在后台和前台之间传递消息。

我该如何解决?:)

4

1 回答 1

1

我知道你的意思。您有几个 js 文件都在后台页面上,并希望它们sendRequest相互连接。您可以通过不实际执行sendRequests 而是调用函数来执行此操作。举个例子可能会更好:

而不是这个:

chrome.extension.onRequest.addListener(function(request, sender, respond)
{
    // bla bla handle request
});

和这个:

chrome.extension.sendRequest({ message: "hello" }, function(response)
{
    // do something with response
});

你来做这件事:

function handle_message(request, sender, respond)
{
    // bla bla handle request
}
chrome.extension.onRequest.addListener(handle_message);

和这个:

handle_message({ message: "hello" }, function(response)
{
    // do something with response
});

当然,不在后台页面上的脚本仍然会执行sendRequests。

于 2011-04-03T11:28:42.030 回答