Сначала я полностью новичок ie, создающий расширение chrome, затем в части расширения chrome я получу разные URL-адреса и хочу сохранить текст веб-страницы для последующей обработки, в результате получается массив логических переменных, каждая из которых связана с данным URL. Схематически это будет примерно так:
var result;
function process(text){
if something -> result.push(true);
if not -> result.push(false);
}
function main(){
for (i...){
url = given[i];
text = getHTMLText(url);
process(text);
}
final();//when the loop finish activate another function that use the global variable: result
}
У меня проблемы с основной функцией, сначала я попробовал с синхронным XMLHttpRequest, хотя он работает очень медленно и chrome всегда выдает предупреждение, что синхронный XMLHttpRequest осуждается.
for (var i = 0; i < urls.length; i++){
url = urls[i];
var req = new XMLHttpRequest();
req.open('GET', url, false);
req.send(null);
if (req.status == 200) detecting(req.responseText);
};
Другое решение, которое я нашел, - это использовать fetch (url), но код, который я нахожу, мне не совсем понятен. Хотя возвращенный текст работает правильно, но тогда функция процесса выдает разные результаты при каждом обновлении страницы.
for (var i = 0; i < urls.length; i++){
url = urls[i];
fetch(url).then(function(response) {
response.text().then(function(text) {
detecting(text);
});
});
};
Другая проблема, но это из-за того, что у меня мало знаний о fetch (), что я могу Не сохраняйте text
из функции fetch (), каждый раз, когда я выполняю console.log, я получаю undefined, это значительно усложняет обработку текста для меня.
Я видел, что, возможно, это можно сделать через API расширения chrome, но я не вижу, как это сделать.