内容脚本与 bg 页面通信 [同步]

Content script communicate with bg page [Synchronous]

提问人:UICodes 提问时间:7/23/2010 更新时间:6/2/2014 访问量:690

问:

您好,好的,我知道内容脚本可以使用以下命令与后台页面进行通信:

chrome.extension.sendRequest({action:'test'}, function(response) {
  //code here...
});

someFunction();

但是可以同步通信吗?基本上等到响应返回到内容脚本后再执行 someFunction()?

如果没有,是否可以使用普通的 xmlhttprequest 与 bg 页面通信?

你为什么问?

我正在将我的内容脚本加载到“document_start”(必需)的网页中,我在 CS 中的一个变量取决于选项页面中设置的 localStorage 变量。因此,在调用 someFunction() 之前,我需要后台页面中的这个 localStorage 变量。

提前致谢。

javascript google-chrome-extension chromium

评论


答:

1赞 CrazyEnigma 7/23/2010 #1

您可以链接回调以调用下一个请求。

您可以显式指定要同步的 XHR。

chrome.extension.sendRequest({action:'test'}, function(response) {
    someFunction(response);  // Calling the function
    // or
    chrome.extension.sendRequest(...);
});
function someFunction (resp) {
    // Execute code
};

评论

0赞 UICodes 7/23/2010
您能否提供一个“链接回调”的示例,以便在调用 someFunction() 之前来自后台页面的响应返回到内容脚本?
0赞 UICodes 7/23/2010
好吧,有一个误会。在我的示例中,“someFunction()”表示页面中包含的所有其他逻辑,并且不能在回调中移动。所以从技术上讲,您确实回答了这个问题(谢谢),但我正在寻找一种立即从后台页面检索数据的方法,或者如果不可能,则同步(在页面等待响应时)。
0赞 user2867288 6/26/2017
现在是 2017 年,谷歌仍然没有办法做到这一点。拍,拍