-1

这是我的代码片段 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

- 关于这个有什么帮助吗?

4

1 回答 1

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>

查询:

$('#divBtn').click(function () {
    //this is your div click event.
});

从服务器端调用 Div 点击事件:

对于这个例子,我使用了 asp.net 的内置 scriptmanager 类,但我知道 AJAX 控制工具包有自己的版本,所以你可以真正使用你喜欢的任何一个,但函数调用和参数可能不同。

拥有脚本管理器后,您将需要知道单击处理程序的名称。我假设您正在为单击处理程序使用 javascript 函数,因为您的 div 上没有runat="server"属性。

因此,一旦您分配了 div 的 click 功能并且您的脚本管理器已全部设置好,您将使用该ScriptManager.RegisterStartupScript功能。文档可以在这里找到。

就像是:

 ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "nameOfScript", "DivClickHandler", True)

将告诉您的页面在页面加载时调用 div 点击处理程序。

您在 invokemember 中看到的问题是,当点击处理程序位于客户端(在 javascript 中)或未向服务器注册(因为您的 div 没有runat="server"设置属性时,您正在服务器端调用它。所以当你在你的 vb 中调用了 invokemember ,它没有做任何事情,因为就你的服务器而言,处理程序不存在。

于 2013-04-23T15:42:04.573 回答