Возможно ли получить получение ждать перенаправления? - PullRequest
2 голосов
/ 31 марта 2020

В настоящее время я работаю над динамическим извлечением веб-страницы из веб-расширения и использую следующий код:

let url = "https://lykdat.com/search-result/?image_url=https://anf.scene7.com/is/image/anf/KIC_330-2455-0904-476_prod1?$product-hol-v1$&wid=800&hei=1000";

fetch(url,{redirect: 'follow'}).then(r => r.text()).then(result => {
  console.log(result);
  var el = document.createElement( 'html' );
  el.innerHTML = result;
  // console.log(typeof(tempPage));
  console.log(el);
  tempImgs = el.getElementsByTagName('img');
  console.log(tempImgs);
})

Я хочу иметь возможность изменять любой текст, который следует после "image_url =" для того, чтобы изменить, какое изображение подключается к сайту. К сожалению, страница, с которой я пытаюсь получить информацию, появляется после непродолжительного периода загрузки, поэтому при использовании функции «выборки» можно получить только информацию с экрана загрузки, а не саму нужную страницу. Перенаправление не происходит мгновенно и может занять от 3 до 30 секунд и Мне было интересно, есть ли способ заставить выборку ждать этого перенаправления перед очисткой данных. Большое спасибо за любую помощь, которую вы можете предложить !

1 Ответ

0 голосов
/ 31 марта 2020

Используйте await, ваша функция должна быть асинхронной c, чтобы это работало.

async function YourFunctionName (){
  let url = "https://lykdat.com/search-result/?image_url=https://anf.scene7.com/is/image/anf/KIC_330-2455-0904-476_prod1?$product-hol-v1$&wid=800&hei=1000";

  var promise = await fetch(url,{redirect: 'follow'}).then(r => r.text()).then(result => {
  console.log(result);
  var el = document.createElement( 'html' );
  el.innerHTML = result;
  // console.log(typeof(tempPage));
  console.log(el);
  tempImgs = el.getElementsByTagName('img');
  console.log(tempImgs);
})
}

YourFunctionName();
...