浅谈WebBrowser控件
最近写了一个小程序,从一个web系统中扒数据存到本地,最初想直接用 HttpWebRequest,后来发现那个系统cookie存的很乱,参数的加密算法也很复杂,为了节省时间,决定改用WebBrowser控件。下面我把用到的方法记录一下:
1、添加JS
HtmlDocument docFrame = webBrowser1.Document;
HtmlElement div = docFrame.CreateElement("div");
HtmlElement ele = docFrame.CreateElement("script");
ele.SetAttribute("type", "text/javascript");
ele.SetAttribute("text", jsStr);//jsStr为js代码字符串,例如:"function fun(message){alert(message);}"
docFrame.Body.AppendChild(ele);
调用js方法:
object[] cs = new object[1];
cs[0] ="aaa";//参数类型字符串
docFrame.InvokeScript("fun", cs);
2、获取js全局变量
string dataRes = webBrowser1.Document.InvokeScript("eval", new string[] { "top.dataRes" }).ToString();
3、获取和设置input控件的value值
HtmlElement eletxt = webBrowser1.Document.GetElementById("txtUserName");
获取value值:string value= eletxt.GetAttribute("value");
设置value值:webBrowser1.Document.GetElementById("txtUserName").SetAttribute("value", "admin");
4、嵌入iframe页并跳转
HtmlDocument doc = webBrowser1.Document.Window.Document;
ele = doc.CreateElement("iframe");
ele.SetAttribute("id", "myFrame");
doc.Body.AppendChild(ele);
ele.SetAttribute("src", url);