Обнаружение модификации HTML-страницы Javascript в элементе управления VB.NET Webbrowser - PullRequest
0 голосов
/ 23 июля 2010

Мой VB.NET-код должен выполнять сторонний Javascript-код при попытке заполнить и отправить форму.Этот процесс состоит из пяти этапов, и я смог отправить форму, когда все этапы разделены (т.е. за 5 последовательных нажатий кнопок).Теперь, что я хотел бы иметь, это одна кнопка для обработки всех пяти шагов.

Проблема в том, что форма первоначально появляется только после вызова команды "webbrowser.Navigate", которая, по-видимому, изменяет HTML-код страницы.,Кажется, я не могу определить, когда Javascript завершил загрузку нового HTML-кода, чтобы заполнить и отправить форму.Я пытался использовать таймер, чтобы дождаться появления определенного идентификатора HTML-элемента, но тщетно.

Этот вопрос уже задавался ранее в разных формах, но, по крайней мере, я не смог найти большую помощь из предыдущих ответов:

InvalidCastException с WebBrowser.IsBusy или ReadyState (VB .NET)

Обнаружение, когда AJAX изменяет HTML в DIV в WebBrowser

http://www.techtalkz.com/vb-net/374234-vb-net-webbrowser-control-how-capture-javascript-events-statusbar-changed-mouseclick-etc.html

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 23 июля 2010

Что ж, в индустрии программного обеспечения это обычно работает: только после того, как вы объяснили проблему другим, вы в состоянии в достаточной степени ее понять - и решить ее самостоятельно.

Проблема заключалась в том, что я использовал не System.Windows.Forms.Timer (), а другой (менее подходящий) класс таймера для отслеживания изменений в коде HTML. По этой причине Application.DoEvents () не работал. С System.Windows.Forms.Timer () я смог создать событие Timer.Tick, которое отслеживает фазу отправки формы (1-5 в моем примере) и пытается выполнить необходимые команды Javascript в Try- Поймать строительство. Если обнаружено исключение, вместо этого выполняется Application.DoEvents (), и таймер обеспечивает повторное выполнение этих же команд в ближайшее время.

Кажется, это работает для меня.

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