Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome 从Chrome扩展提取数据的网页_Google Chrome_Google Chrome Extension - Fatal编程技术网

Google chrome 从Chrome扩展提取数据的网页

Google chrome 从Chrome扩展提取数据的网页,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,可以将网页中的数据抓取到Chrome扩展中,但也可以执行相反的操作,即网页从Chrome扩展中提取数据 场景是:当我们在一个选项卡中加载一个新页面时,chrome扩展将从服务器收集数据,网页可以在需要时从插件收集数据。 一般来说,这不是一个好的解决方案,但当多个网页使用相同的数据时,而不是所有与服务器交互的页面,只有chrome扩展才会一次且每个页面都获得数据 可以通过扩展从服务器收集数据,但网页如何通过请求扩展获取数据?也许在某种程度上这是可能的 注意:讨论对于所有浏览器都是通用的,但我刚刚标

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

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

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


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

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

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

在扩展中,您可以通过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);
});
资料来源:


希望有帮助!!

请注意:我可以通过扩展从服务器收集数据。但问题是页面如何请求扩展以修改数据本身,而不是扩展。为什么不使用适当的缓存头为资源提供服务?这对网站的每一个用户都有利,而不仅仅是使用扩展的用户alled.这与用户无关,网页开发人员没有这些数据,只能通过扩展获取。什么样的数据?JavaScript文件?(JSON(P))来自web服务的响应?图像?最后,我通过研究得到了答案。使用“消息传递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);
});