代码之家  ›  专栏  ›  技术社区  ›  user

通过WebBrowser控件取消选中网页中的复选框

  •  2
  • user  · 技术社区  · 16 年前

    HtmlDocument rememberme = this.webBrowser1.Document;
    rememberme.GetElementById("remBox").SetAttribute("checked", "false");
    
    5 回复  |  直到 15 年前
        1
  •  5
  •   Majkel    16 年前

    您可以使用:

    webBrowser.Document.InvokeScript

    参见:

    InvokeScript

    通过这种方式,您可以调用JS函数,该函数将对页面执行您想要的操作。

    另一种方法是使用mshtml API,如下所示: ( ( HTMLInputElement )this.webBrowser1.Document.GetElementById( "test" ).DomElement ).@checked = false;

        2
  •  1
  •   jumpcutking    15 年前

    您可以使用HTML元素的InvokeMember方法来调用DOM事件。在我们的例子中,“点击”。如果你有一个WebBrowser控件,你所要做的就是找到元素并调用方法。

    For Each ele As HtmlElement In Me.WebBrowser1.Document.All
            If ele.Name = "accept" Then
                ele.InvokeMember("click")
            End If
    Next
    

    在我的示例中,“accept”是复选框元素的名称。您可以将SetAttribute()用于其他一些控件,但模拟单击的最佳方法是使用GetAttribute()查找复选框状态,如果复选框设置为false,则单击。希望它能有所帮助。

        3
  •  0
  •   Myles    16 年前

    在javascript中,您应该能够使用clientId来设置.checked=false。

        5
  •  0
  •   CodeRedick    16 年前

    LONG版本是,您必须使用DOM函数来查找要更新的控件的客户端ID,然后设置它的值。

    一旦我开始工作,如果没有其他人比我做得更好,我可能会为你找到一些示例代码。。。

    基本上,你需要做的就是:

    HTMLDocumentClass doc = webBrowserControl.Document as mshtml.HTMLDocumentClass;
    
    HTMLInputElement input = doc.all.item("checkboxID", 0) as HTMLInputElement;
    
    input.value ="false";  //Could be 0, not sure... 
    //could also be input.@checked = false, sorry I haven't actually used this on a checkbox before... one of these should work though