Проблема WebBrowser.Refresh в VB.Net - PullRequest
1 голос
/ 20 апреля 2009

Я работаю над веб-сканером в VB.net и использую объект System.Forms.WebBrowser для обработки навигации по сайтам, использующим JavaScript или посты форм, но у меня проблема. Когда я возвращаюсь назад (WebBrowser.GoBack ()) к странице, которая была загружена с публикацией формы, срок действия этой страницы истек, и я должен сделать обновление, чтобы повторно отправить запрос. Когда я вызываю обновление (WebBrowser.Refresh ()), появляется диалоговое окно для подтверждения. Есть ли способ обойти это модальное диалоговое окно в коде? Спасибо!

Ответы [ 3 ]

2 голосов
/ 20 апреля 2009

Вы можете передать опцию обновления типа System.Windows.Forms.WebBrowserRefreshOption.

Есть несколько опций, описанных здесь:
http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowserrefreshoption.aspx

Кажется, что опции - это единственный способ, которым вы можете управлять программным обновлением веб-браузера.

1 голос
/ 20 июля 2009

У меня была похожая проблема с появлением всплывающего окна с предупреждением JavaScript. Мне удалось подавить это, используя событие window_error.

Я добавил эту строку в обработчик событий browser_completed:

((WebBrowser)sender).Document.Window.Error +=
    new HtmlElementErrorEventHandler(Window_Error);

Вот мой window_error обработчик событий:

void Window_Error(object sender, HtmlElementErrorEventArgs e)
{
    e.Handled = true;
}

Еще один вариант подумать - играть с this._browser.ScriptErrorsSuppressed. Я уверен, что вы не получаете ошибку сценария, но это стоит попробовать.

0 голосов
/ 20 октября 2011

Я нашел способ решения этой проблемы здесь: http://www.experts -exchange.com / Программирование / Языки / .NET / Q_25160302.html

В основном вы делаете это так:

Browser.Refresh(WebBrowserRefreshOption.Completely);
SendKeys.Send("{Enter}");

Строка SendKeys.Send("{Enter}"); отправляет клавишу Enter в активное окно, которое является модальным диалогом, от которого мы хотим избавиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...