У меня есть расширение для хрома. Всякий раз, когда пользователь нажимает кнопку расширения, он загружает источник следующего URL-адреса: «smmry.com/(URL-адрес текущей активной вкладки пользователя)»
Я использую следующий код javascript для загрузки источника URL-адреса в виде html-файла. Этот код в настоящее время запускается всякий раз, когда пользователь нажимает кнопку моего расширения (переменный URL-адрес является гипотетическим URL-адресом, который может загрузить мое расширение. В этом случае пользователь фактически будет просматривать cnn.com/(path_to_news_article), но расширение будет загружаться : smmry.com/https://www.cnn.com/(path_to_news_article)):
let URL = 'https://smmry.com/https://www.cnn.com/2018/04/01/politics/ronald-kessler-jake-tapper-interview/index.html#&SM_LENGTH=7'
fetch(URL)
.then((resp) => resp.text())
.then(responseText => {
download("website_source.html", responseText)
})
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
Вот источник веб-страницы: https://smmry.com/https://www.cnn.com/2018/04/01/politics/ronald-kessler-jake-tapper-interview/index.html#&SM_LENGTH=7
Однако, как вы можете видеть, если вы посещаете веб-страницу, иногда веб-странице требуется небольшое количество времени (до нескольких секунд), чтобы подвести итог статьи. В этой статье это менее заметно, но обычно розовая полоса загрузки будет перемещаться вверх и вниз в розовом поле, пока сводка не будет создана и отображена на веб-сайте.
Я считаю, что мой код загружает исходный код веб-сайта до того, как он заканчивает обобщать статью, поэтому файл HTML, загружаемый моей программой, не содержит резюме статьи.
Как я могу убедиться, что запрос fetch()
загружает содержимое веб-сайта только после того, как веб-сайт https://smmry.com
закончит подведение итогов статьи https://www.cnn.com/2018/04/01/politics/ronald-kessler-jake-tapper-interview/index.html
.
Изменить: мой файл manifest.json
.
{
"manifest_version": 2,
"name": "Summarizer",
"version": "1.0",
"description": "Summarizes webpages",
"permissions": [
"tabs",
"downloads",
"*://*.smmry.com/*"
],
"icons": {
"48": "icons/border-48.png"
},
"browser_action": {
"browser_style": true,
"default_popup": "popup/choose_page.html",
"default_icon": {
"16": "icons/summarizer-icon-16.png",
"32": "icons/summarizer-icon-32.png"
}
}
}