我正在编写一个注入内容脚本的扩展程序。此脚本解析页面中的数据,将其保存在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
包含一些函数来读取“下一个”链接,解析当前页面等。
答案 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);