通常大家都是在OnDocumentComplete里面判断,认为这个事件触发了就是页面加载完成了,或者判断ReadyState和IsBusy属性,但是实际上,WebBrowser控件在加载多框架页面的时候会多次触发OnDocumentComplete事件,ReadyState和IsBusy属性也会不断发生变化,实在是头晕。。。不知道微软的这个WebBrowser控件当初是怎么设计的,简直是乱得可以。。。
这个问题折磨了我很久,网上查到很多文章,有说加定时器判断的,有说用其他控件的,不过都很复杂或者不准确或者麻烦。找来找去,发现了最简单有效的办法,所有网页的判断都没有问题,算是彻底解决了。
如果元素name或id是固定的,那么你可以在线程里循环检查这个元素,找到就说明加载完成了
我一般通过加载的URL来判断是否需要这次的 ondocumentcomplete 事件执行
根本不要用自带的,cef才是好的选择。检测你可以用dom、js都可以。自带的太多问题,很多问题根本无法解决。