我正在查看以下网站: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 中的任何建议或任何指针,我将不胜感激。
谢谢。
最佳答案
参见:https://developer.mozilla.org/en/DOM/DOM_event_reference
据我所知,您需要的事件都不是标准的一部分,但如果您只是为您控制的客户开发,我想这没有问题。
这样做当然是错误的。为什么不跳过 HTML 抓取步骤并直接从网页插入的任何网络服务中获取数据?
我认为 DOM 只是一个 UI 模型,它不是数据源。数据源应该是您的网络服务。
关于java - 为 DOM 元素 HTML 更新添加监听器。壁虎、C#.Net、Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8167342/