网页从Chrome扩展程序中提取数据

时间:2013-07-20 15:37:39

标签: google-chrome google-chrome-extension

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

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

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

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

2 个答案:

答案 0 :(得分: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

希望它有所帮助!!

答案 1 :(得分:0)

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