0

我正在尝试在我的程序中模拟按钮单击,以便从服务器获取响应。问题是网页“onclick”激活了该页面中的脚本

html 看起来像这样:

<script language=javascript>
    function frmsubmit(id)
    {
        document.all("HistoryData1_hiddenID").value=id;
        document.all("Form1").submit();  
    }
</script>
<input type="button" id="btnGo" value="Go" Class="RegularButton" onclick="frmsubmit('0')" >

我使用了我见过的这段代码:

WebBrowser wb = new WebBrowser();
wb.Navigate(url);
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
    Application.DoEvents();
}
wb.Document.GetElementById("btnGo").InvokeMember("click");

什么都没发生。在真实的网页中,我得到一个包含我需要的数据的 html。有任何想法吗?

4

3 回答 3

3

你可以像使用 jquery

$("#btnGo").click();

在您的 .cs 中,您将像使用它一样

StringBuilder sb = new StringBuilder();
sb.AppendLine("$(document).ready(function() {");
sb.AppendLine("$('#btnGo').click();");
sb.AppendLine(" });");
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", sb.ToString(), true);

就是这样,当然你必须将 jquery 库添加到 html 页面

于 2013-01-16T18:03:26.420 回答
0

尝试调用 doPostBack

__doPostBack("btnGo', '<event argument here>');

http://wiki.asp.net/page.aspx/1082/dopostback-function/

于 2013-01-16T17:59:51.717 回答
0

使用 jQuery trigger()函数(或triggerHandler,取决于您的目的)。IE

$('#<%=btnGo.ClientID%>').trigger('click');
于 2013-01-16T18:04:42.043 回答