从网页抓取数据到Chrome扩展中是可能的,但也有可能做相反的事情,即网页从chrome扩展中提取数据。
场景是:当我们在标签页中加载一个新页面时,chrome扩展将从服务器收集数据,网页可以在需要的时候从插件中收集数据。一般来说,这不是一个好的解决方案,但是当多个网页使用相同的数据数据时,而不是所有的页面都与服务器交互,只有chrome扩展才会一次并且每个页面都获取数据。
可以通过扩展从服务器采集数据,但是网页如何通过请求扩展来获取数据呢?也许这在某种程度上是可能的。
注意:讨论对于所有浏览器都是通用的,但我刚刚标记了Chrome-extensions,因为我试图从Chrome开始。
发布于 2013-07-21 21:21:10
潜在的解决方案是使用“消息传递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-21 00:56:35
我猜这里的解决方案是使用后台脚本来获取所需的数据,然后通过chrome.tabs.executeScript将JSON对象注入到页面中……
https://stackoverflow.com/questions/17763843
复制相似问题