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