Добавьте слушателя к обновлению HTML элемента DOM. Геккон, C # .Net, Java - PullRequest
3 голосов
/ 17 ноября 2011

Я смотрю на следующий сайт: www.example.com

Я перехожу на сайт с объектом GeckoWebBrowser и каждую секунду делаю снимок HTML-кода объекта.Затем я перемещаюсь по DOM, чтобы получить нужную таблицу (div = 'tableContainer'), получаю InnerHTML этого элемента и анализирую таблицу в наборе данных C # .Net.Затем я могу создать объекты «Прайс» и продолжить обработку обновлений.

Я хотел бы сделать это асинхронно: без необходимости проверять HTML элемента в цикле.Если нет обновлений, я не хочу ничего делать.Если есть обновление, я хочу собрать HTML (желательно только для строки / столбца / ячейки, которая обновилась !!).Как я могу сделать следующее:

this.geckoWebBrowser1.Window.Scripter.AddEventListener("updateItem_inJavaScriptCode", new EventHandler<DOMJSONStringEventArgs>(OnMyExtensionEvent));

или

Skybound.Gecko.GeckoElement tableContainer = gwb.Document.GetElementById("tableContainer");
tableContainer+= new GeckoDOMElementHTMLCHANGEDUPDATE(methodToCallWithDOMUpdate);`

Буду признателен за любые предложения по этому вопросу в Java или C # .Net или любые указатели вообще.

Спасибо.

1 Ответ

0 голосов
/ 14 декабря 2011

См .: https://developer.mozilla.org/en/DOM/DOM_event_reference

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

Это, конечно, неправильно.Почему бы вам не пропустить этап очистки HTML и извлечь данные непосредственно из любого веб-сервиса, к которому подключается веб-страница?

Я вижу DOM только как модель пользовательского интерфейса, а не источник данных.Источником данных должны быть ваши веб-сервисы.

...