我有一个windows窗体应用程序,它的窗体上有一个with浏览器控件。在tag浏览器控件的html主体中,有一个我试图调用click event 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">
我已经获得了获取按钮并调用click事件的代码
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吗?
发布于 2018-06-21 06:23:50
我添加了下面这行代码
HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function Filter() { javascript: WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('id of element', '', true, '', 'url', false, true)) }";
head.AppendChild(scriptEl);
webBrowser1.Document.InvokeScript("Filter");
https://stackoverflow.com/questions/50937754
复制相似问题