首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展:遍历不同的页面并收集数据

Chrome扩展:遍历不同的页面并收集数据
EN

Stack Overflow用户
提问于 2015-04-08 19:49:07
回答 1查看 440关注 0票数 2

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

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

任何线索都会很感激的!

(从评论中添加)

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

代码语言:javascript
复制
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还包括一些读取“下一步”链接、解析当前页面等功能。

EN

回答 1

Stack Overflow用户

发布于 2015-04-08 21:45:43

对于你如何切换页面,我会采取不同的做法。

我会用下一个URL传递背景信息,让后台更新页面并重新注入内容。这样,它将与导航同步。

代码语言:javascript
复制
// 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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29524068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档