可以将网页中的数据抓取到Chrome扩展程序中,但是可以执行相反的操作,即从Chrome扩展程序中提取网页数据。
方案是:当我们在选项卡中加载新页面时,Chrome扩展程序将从服务器收集数据,并且网页可以在需要时从插件中收集该数据。 一般来说,这不是一个好的解决方案,但是当多个网页使用相同的数据数据,而不是所有与服务器交互的页面时,只有chrome扩展名会一次,每个页面都会获取数据。
可以通过扩展从服务器收集数据,但网页如何通过请求扩展来获取数据?可能在某种程度上是可能的。
注意:讨论对所有浏览器都是通用的,但我刚刚标记了Chrome扩展程序,因为我试图从Chrome开始。
答案 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对象注入页面......