我正在为webbrowser.DocumentText设置一个HTML字符串值。问题是,有时它是有效的,有时它会挂断,而不是通过文档完成事件。可能是什么问题?
请尽快回复。
谢谢,
Jepe
答案 0 :(得分:1)
只是一个想法:现在所有的web-'dynam-ism',页面永远不会处于“完全加载”的状态。在DocumentComplete之后,触发页面的OnLoad事件,然后触发放置在这样的事件中的任何脚本,然后可以使用javascript计时器来启动某些资源的下载/上传,或者使用AJAX进行页面更改等。 / p>
我相信AJAX调用可能会导致WebBrowser
控件出现各种看不见的问题;因为AJAX可以在加载页面时导致多个Navigating()
事件触发。因此,您的应用会在该页面上遇到多个DocumentCompleted
事件。
可能的解决方案是监控页面更改并尝试找出可能已更改的内容。要做到这一点,您可能需要研究Notify方法。
发生更改时由MSHTML调用 在标记的内容中 与之相关的容器 相关联。
HtmlElement target = _webBrowser.Document.GetElementById("somedivthatwillbepopulatedbytheajaxrequest");
if (target != null)
{
target.AttachEventHandler("onpropertychange", new EventHandler(handler));
}