Chrome扩展程序:迭代不同的页面并收集数据

时间:2015-04-08 19:49:07

标签: javascript google-chrome-extension

我正在编写一个注入内容脚本的扩展程序。此脚本解析页面中的数据,将其保存在localStorage中,并能够找到下一页的链接并通过location.href = "newUrl"重新加载。在此页面上,脚本应该再次运行,解析数据,保存,转到下一页等。

目前我找不到让我做最后一部分的解决方案(转到新页面,再次运行脚本,转到下一页)。我找不到像“在页面上加载执行解析函数然后执行goToNextPage函数”这样的方法。

任何线索都会受到高度赞赏!

(从评论中添加)

我的background.js包含以下内容:

chrome.browserAction.onClicked.addListener(function (tab) {
  chrome.tabs.executeScript(tab.id, {file: "jquery-2.1.3.min.js"}, function () { 
    chrome.tabs.executeScript(tab.id, {file: "content.js"});
  });
});

并且content.js包含一些函数来读取“下一个”链接,解析当前页面等。

1 个答案:

答案 0 :(得分:0)

关于如何切换页面,我会做不同的事情。

我会使用下一个URL向背景发送消息,然后让后台更新页面并重新注入内容。这样它将与导航同步。

// Content script
chrome.runtime.sendMessage({action: "updateMe", url: nextUrl});

// Background
function injectScripts(tab) {
  chrome.tabs.executeScript(tab.id, {file: "jquery-2.1.3.min.js"},
    function () { chrome.tabs.executeScript(tab.id, {file: "content.js"}); }
  );
}

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  if(message.action == "updateMe") {
    chrome.tabs.update(sender.tab.id, {url: message.url}, injectScripts);
  }
});

// You can use the same handler in onClicked
chrome.browserAction.onClicked.addListener(injectScripts);