有没有办法取消选中/选中webbrowser控件中加载的网页中的复选框?谢谢。
更新:(这是我最初尝试过的,没有运气)
HtmlDocument rememberme = this.webBrowser1.Document;
rememberme.GetElementById("remBox").SetAttribute("checked", "false");
答案 0 :(得分:5)
您可以使用:
webBrowser.Document.InvokeScript
请参阅:
通过这种方式,您可以调用JS函数来执行您想要的页面。
另一种方法是使用mshtml API,如下所示:
( ( HTMLInputElement )this.webBrowser1.Document.GetElementById( "test" ).DomElement ).@checked = false;
答案 1 :(得分:1)
您可以使用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,则单击。希望它有所帮助。
答案 2 :(得分:0)
在javascript中,您应该能够使用clientId设置.checked = false。
答案 3 :(得分:0)
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.invokescript.aspx 你需要分析页面结构,找出如何找到复选框,并使用Myles的方法检查/取消选中javascript中的复选框。
答案 4 :(得分:0)
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
所以是的,不知道为什么有人会通过编写JavaScript并在你用3行代码设置控件的值时调用它来完成所有工作。