使用 WebForm_DoPostBackOptions

我有一个 Windows 窗体应用程序,其窗体上有一个 webbrowser 控件。在 webbrowser 控件的 html 正文中有一个按钮,我试图调用单击事件 html 标记


<input name="ctl00$MainContentPlaceHolder$ctl00$FilterButton" class="MPPBtn" id="ctl00_MainContentPlaceHolder_ctl00_FilterButton" 

onclick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContentPlaceHolder$ctl00$FilterButton", "", true, "", "", false, true))' type="button" value="Filter">

我已经得到了获取按钮并调用点击事件的代码


   HtmlElement filterBtn = webBrowser1.Document.GetElementById("ctl00_MainContentPlaceHolder_ctl00_FilterButton");

   filterBtn.InvokeMember("Click");

我的问题是,当通过代码调用 click 事件时,它的行为方式与我在 chrome 等常规浏览器中单击时的行为方式不同。我想这可能是因为 javascript:WebForm_DoPostbackoption


onclick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContentPlaceHolder$ctl00$FilterButton", "", true, "", "", false, true))'

我已经环顾四周,看到我可能必须调用 javascript:webform_dopostback 但这并没有真正意义,因为我认为一旦你获得按钮并调用点击事件,那么你会得到照顾吗?但我尝试添加调用脚本无济于事


webBrowser1.Document.InvokeScript("WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('ctl00$MainContentPlaceHolder$ctl00$FilterButton', '', true, '', '', false, true))");

有人可以解释我应该做什么或如何处理 WebForm_DoPostBackWithOptions 吗?


慕标5832272
浏览 418回答 1
1回答

慕无忌1623718

我添加了这些代码行&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HtmlElement&nbsp;head&nbsp;=&nbsp;webBrowser1.Document.GetElementsByTagName("head")[0];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HtmlElement&nbsp;scriptEl&nbsp;=&nbsp;webBrowser1.Document.CreateElement("script");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IHTMLScriptElement&nbsp;element&nbsp;=&nbsp;(IHTMLScriptElement)scriptEl.DomElement; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.text&nbsp;=&nbsp;"function&nbsp;Filter()&nbsp;{&nbsp;javascript:&nbsp;WebForm_DoPostBackWithOptions(new&nbsp;WebForm_PostBackOptions('id&nbsp;of&nbsp;element',&nbsp;'',&nbsp;true,&nbsp;'',&nbsp;'url',&nbsp;false,&nbsp;true))&nbsp;}"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head.AppendChild(scriptEl); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;webBrowser1.Document.InvokeScript("Filter");
打开App,查看更多内容
随时随地看视频慕课网APP