相关疑难解决方法(0)

如何在C#中使用WebBrowser控件DocumentCompleted事件?

在开始写这个问题之前,我试图解决以下问题

// 1. navigate to page
// 2. wait until page is downloaded
// 3. read and write some data from/to iframe 
// 4. submit (post) form
Run Code Online (Sandbox Code Playgroud)

问题是,如果网页上存在iframe,则DocumentCompleted事件将被触发多次(在每个文档完成之后).程序很可能试图从DOM中读取未完成且自然失败的数据.

但突然写下这个问题'如果'怪物启发了我,我解决了问题,我试图解决.由于我没有谷歌这个,我觉得在这里发布它会很好.

    private int iframe_counter = 1; // needs to be 1, to pass DCF test
    public bool isLazyMan = default(bool);

    /// <summary>
    /// LOCK to stop inspecting DOM before DCF
    /// </summary>
    public void waitPolice() {
        while (isLazyMan) Application.DoEvents();
    }

    private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) {
        if(!e.TargetFrameName.Equals(""))
            iframe_counter --; …
Run Code Online (Sandbox Code Playgroud)

c# automation webbrowser-control c#-2.0

14
推荐指数
1
解决办法
5万
查看次数

标签 统计

automation ×1

c# ×1

c#-2.0 ×1

webbrowser-control ×1