chrome.debugger.sendCommand(...);
// Подключаем библиотеку для создания zip-архивов:
script = document.createElement('script');
script.src = 'https://cdn.jsdelivr.net/npm/jszip/dist/jszip.min.js';
document.head.appendChild(script);
// Выжидаем 3 сек, чтобы библиотека успела загрузится:
await new Promise(function(s) { setTimeout(s, 3000); });
zip = new JSZip(); // Создаем пустой zip-архив
// Получаем список всех ссылок со страницы:
links = document.querySelectorAll('a[href]');
// Перебираем найденные ссылки в цикле:
for (n = 0; n < links.length; n++) {
// Если ссылка ведет на текущий сайт (внутренняя):
if (new URL(links[n].href)['host'] == location.host) {
try {
// Скачиваем html-код по этой ссылке:
html = await (await fetch(links[n].href)).text();
// Парсим этот html-код:
doc = new DOMParser().parseFromString(html, 'text/html');
// Ищем в спарсеном коде все pdf-ки:
pdfs = doc.querySelectorAll('a[href$=".pdf"]');
console.log(' ' + links[n].innerText);
// Перебираем найденные pdf-ки в цикле:
for (i = 0; i < pdfs.length; i++) {
try {
console.log('⭳ ' + pdfs[i].innerText);
// Скачиваем pdf-файл:
blob = await (await fetch(pdfs[i].href.replace(location.href, links[n].href))).blob();
// Если это pdf:
if (/pdf$/i.test(blob.type)) {
// Добавляем pdf в архив:
zip.file(pdfs[i].innerText, blob);
console.log('✔ ' + pdfs[i].innerText);
}
} catch(err) {
console.error(err);
}
}
} catch(err) {
console.error(err);
}
}
}
// Генерируем архив:
console.log('Идет генерации архива...');
file = await zip.generateAsync({ type: 'blob' }, function(metadata) {
console.log('Генерация архива: ' + metadata.percent.toFixed(2) + ' %');
});
// Скачиваем архив:
link = document.createElement('a');
link.download = 'Архив.zip';
link.href = URL.createObjectURL(file);
link.click();
redirectUrl - string optional
Only used as a response to the onBeforeRequest and onHeadersReceived events. If set, the original request is prevented from being sent/completed and is instead redirected to the given URL. Redirections to non-HTTP schemes such as data: are allowed.