C#怪异行为中的Webbrowser控制

C#怪异行为中的Webbrowser控制,c#,webbrowser-control,C#,Webbrowser Control,我正在将HTML字符串值设置为webbrowser.DocumentText。问题是,有时候它工作了,有时候它挂断了,没有完成documentcompleted事件。有什么问题吗 请尽快回复 谢谢 Jepe只是一个想法:在当今所有的网络“动态”中,一个页面永远不会真正处于“完全加载”状态。DocumentComplete之后,页面的OnLoad事件被触发,然后放入此类事件中的任何脚本被触发,然后javascript计时器可用于启动某些资源的下载/上载,或者使用AJAX对页面进行更改,等等 我相信

我正在将HTML字符串值设置为webbrowser.DocumentText。问题是,有时候它工作了,有时候它挂断了,没有完成documentcompleted事件。有什么问题吗

请尽快回复

谢谢


Jepe

只是一个想法:在当今所有的网络“动态”中,一个页面永远不会真正处于“完全加载”状态。DocumentComplete之后,页面的OnLoad事件被触发,然后放入此类事件中的任何脚本被触发,然后javascript计时器可用于启动某些资源的下载/上载,或者使用AJAX对页面进行更改,等等

我相信AJAX调用可能会导致
WebBrowser
控件出现各种看不见的问题;因为AJAX会在加载页面期间引发多个
Navigating()
事件。因此,您的应用程序将在该页面上遇到多个
DocumentCompleted
事件

一个可能的解决方案是监视页面更改并尝试找出可能更改的内容。要做到这一点,您可能需要研究方法

发生更改时由MSHTML调用 在标记的内容中 它所使用的容器 关联的

而讨论可能会帮助您提出以下建议:

HtmlElement target = _webBrowser.Document.GetElementById("somedivthatwillbepopulatedbytheajaxrequest");

if (target != null)
{ 
    target.AttachEventHandler("onpropertychange", new EventHandler(handler));
}

您是否有给我们带来问题的示例文档文本?您能否显示导致问题的代码?“挂起”到底是什么样子的?我不能发布示例文档文本,但它只是带有javascript和css的基本html。当我设置documenttext时,什么都不会发生,documentcompleted也不会触发。documenttext中呈现的html是否会导致问题?如果有,请尝试关闭AJAX?@Jepe:删除所有进行AJAX调用的引用。看见