Я написал класс, который позволяет вам предоставлять несколько URL-адресов и блок кода для очистки страниц внутри расширения Chrome. Вы можете найти репозиторий github здесь: https://github.com/jkarmel/Executor. Он может использовать дополнительное тестирование, и мне нужно поработать над документацией, но, похоже, это может быть то, что вы ищете.
Вот как вы можете использовать его для получения всех ссылок с нескольких разных страниц:
/*
* background.js by Jeremy Karmel.
*/
URLS = ['http://www.apple.com/',
'http://www.google.com/',
'http://www.facebook.com/',
'http://www.stanford.edu'];
//Function will be provided to exector to collect information
var getLinks = function() {
var links = [];
var numLinks = $('a');
$links.each(function(i, val) {links.push(val.href)});
var request = {data: links, url: window.location.href};
chrome.extension.sendRequest(request);
}
var main = function() {
var specForUsersTopics = {
urls : URLS,
code : getLinks,
callback : function(results) {
for (var url in results) {
console.log(url + ' has ' + results[url].length + ' links.');
var links = results[url];
for (var i = 0; i < links.length; i++)
console.log(' ' + links[i]);
}
console.log('all done!!!!');
}
};
var exec = Executor(specForUsersTopics);
exec.start();
}
main();
Таким образом, в основном код для сбора ссылок будет предоставлен экземпляру executor, а затем вы будете делать все, что захотите, с результатами в обратном вызове. Он может работать с длинными списками URL (~ 1000) и будет работать более чем с одним одновременно (по умолчанию == 5). Сейчас он не очень хорошо обрабатывает ошибки в блоке кода, поэтому обязательно проверьте код, который вы предоставляете.