Веб-браузер .net не загружает ссылочное изображение

#.net #image-processing #browser

#.net #обработка изображений #браузер

Вопрос:

Я загружаю веб-страницу с помощью WebBrowser, делаю снимок экрана и сохраняю его на диск. Иногда фоновое изображение, на которое ссылается веб-страница, не загружается. Моя идея заключается в том, что у него не было времени для загрузки. Однако я проверяю, готова ли веб-страница со следующим…

         while (wb.ReadyState != WebBrowserReadyState.Complete)
        {
            Application.DoEvents();
        }
  

Есть идеи, почему фоновое изображение может отсутствовать только иногда?

Приветствую, Ян.

Ответ №1:

Этого недостаточно. Также отличный способ для пользователя завершить работу вашей программы: закройте окно во время его загрузки.

Вы должны использовать событие DocumentCompleted. Убедитесь, что e.URL совпадает с URL браузера, в случае, если веб-страница состоит из нескольких фреймов. Страница все еще может быть дополнительно изменена javascript, вы ничего не можете с этим поделать, кроме использования таймера.

Комментарии:

1. Этот код выполняется в результате веб-запроса, поэтому возможно ли зависание цикла? Также я не уверен, как использовать DocumentCompleted и блокировать, пока не будет вызвано событие. Но в любом случае, я не понимаю, почему WebBrowserReadyState . Веб-браузер установил бы значение Complete, когда на самом деле это было не так.

2. Вы этого не видите? Странно, ваш вопрос, безусловно, звучал так, как вы и сделали. Это нормально.

3. Кроме того, почему исходный код приведет к аварийному завершению работы программы, если пользователь закроет окно?