1

可以将网页中的数据抓取到 Chrome 扩展程序中,但是否可以执行相反的操作,即网页从 chrome 扩展程序中提取数据。

场景是:当我们在选项卡中加载新页面时,chrome 扩展将从服务器收集数据,网页可以在需要时从插件收集数据。一般来说,这不是一个好的解决方案,但是当多个网页使用相同的数据数据时,而不是所有页面都与服务器交互,只有 chrome 扩展会一次又一次地获取数据。

可以通过扩展从服务器收集数据,但是网页如何通过请求扩展来获取数据?也许以某种方式是可能的。

注意:讨论对于所有浏览器都是通用的,但我刚刚标记了 Chrome 扩展,因为我试图从 Chrome 开始。

4

2 回答 2

2

潜在的解决方案是使用“消息传递 API”。

// The ID of the extension we want to talk to.
var id = "abcd..";

// Make a simple request:
chrome.runtime.sendMessage(id, {openUrlInEditor: url},function(response) {
if (!response.success)
 handleError(url);
});

在扩展中,您可以通过 runtime.onMessageExternal 或 runtime.onConnectExternal API 收听来自网页的消息,这是一个示例:

chrome.runtime.onMessageExternal.addListener(
  function(request, sender, sendResponse) {
  if (sender.url == blacklistedWebsite)
   return;  // don't allow this web page access
if (request.openUrlInEditor)
  openUrl(request.openUrlInEditor);
});

来源:http: //developer.chrome.com/extensions/messaging.html

希望能帮助到你!!

于 2013-07-21T13:21:10.063 回答
0

我想这里的解决方案是使用后台脚本来获取所需的数据,然后通过 chrome.tabs.executeScript 将 JSON 对象注入页面...

于 2013-07-20T16:56:34.927 回答