这是我的代码片段VB.Net代码:
Try
Dim elements = browser.Document.GetElementsByTagName("div")
For Each element As HtmlElement In elements
If element.GetAttribute("className") = "next button" Then
element.Focus()
element.InvokeMember("click")
End If
Next
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
- 有关这个的任何帮助吗?
答案 0 :(得分:0)
在客户端尝试这一切:
HTML:
<div class="next button" style="float: left;" onclick="scroll()" title="Hold down to scroll through records faster.">»</div>
使用Javascript:
function scroll() {
//this is your div click event.
}
使用JQuery代替vanilla Javascript:
<div id="divBtn" class="next button" style="float: left;" title="Hold down to scroll through records faster.">»</div>
JQuery的:
$('#divBtn').click(function () {
//this is your div click event.
});
从服务器端调用Div click事件:
对于这个例子,我使用的是asp.net内置的scriptmanager类,但我知道AJAX控件工具包有自己的版本,所以你可以真正使用你习惯的那个,但函数调用和参数可能是不同。
获得脚本管理器后,您需要知道点击处理程序的名称。我假设您正在为您的点击处理程序使用javascript函数,因为您的div上没有runat="server"
属性。
因此,一旦您分配了div的点击功能并且您的脚本管理器都已设置完毕,您将使用ScriptManager.RegisterStartupScript
功能。可以找到文档here。
类似的东西:
ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "nameOfScript", "DivClickHandler", True)
当页面加载时,会告诉你的页面调用div click处理程序。
使用invokemember时遇到的问题是,当单击处理程序在客户端(在javascript中)或未在服务器上注册时,您在服务器端调用它(因为您的div没有{{ 1}}属性集。所以当你在你的vb中调用invokemember时,它没有做任何事情,因为就你的服务器而言,处理程序不存在。