Обнаружение изменений документа webBrowser после запуска DocumentCompleted - PullRequest
1 голос
/ 23 декабря 2010

Я использую элемент управления WebBrowser.Я редактирую некоторые входные данные HTML и нажимаю кнопку в обработчике событий WebBrowser DocumentCompleted.Моя проблема заключается в нажатии на кнопку, которую я упомянул, изменяет содержимое документа с помощью AJAX, зная, что мне нужно проанализировать некоторую информацию из новых изменений.Вопрос в том, как определить, когда документ завершил загрузку нового содержимого.Есть ли какой-нибудь обработчик событий, например DocumentChanged.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 23 декабря 2010

Я подумал, что ты вернешься по этому поводу. Объектная модель расширяемости не имеет большой поддержки наблюдения за выполнением сценариев. Это не практично, код сценариев может работать полностью асинхронно из состояния страницы в непредсказуемое время. Если в сценарии нет надежных модификаций DOM, которые вы можете прочитать, у вас не останется ничего, кроме как просто крутить колеса в течение нескольких секунд, чтобы дать ему «достаточно времени». Не должно быть проблем, учитывая, что вы запускаете это в рабочем потоке, просто используйте System.Windows.Forms.Timer, чье событие Tick вызывает Application.ExitThread для завершения потока.

1 голос
/ 23 декабря 2010

Я не уверен, что это можно сделать - элемент управления WebBrowser очень прост и плохо работает

0 голосов
/ 30 декабря 2010

Контролируете ли вы HTML документа, который вы отображаете?Если это так, после внесения изменений в Ajax вы можете использовать Javascript для вызова метода C # в родительской форме window.external.MyPublicMethodName().Ваше приложение должно работать в режиме полного доверия, чтобы это работало, а также для установки объекта ObjectForScripting браузера на саму форму, например this.webBrowser1.ObjectForScripting = this; в вашем событии Form_Load.

...