在WebBrowser(WinForm)中执行Javascript(jQuery)

去年搞的139说客活跃软件,采用WinForm开发,主要通过WebBrowser控件,对139说客的网页进行访问操作,如登录139社区,发说客,拨打G3电话。

之前我一直使用C#对表单元素进行操作,如模拟鼠标点击表单对象获取焦点,给表单对象赋值等等,对于简单的未经Javascript处理的表单对象进行这样的操作问题不大,但当遇到139说客的这个文本框(下图所示)时却不奏效了。

分类:雕虫小技 日期:2011年01月13日 评论:21条 阅读全文

.Net Winform(C#) WebBrowser + Javascript 随意说

使用Winform WebBrowser控件对访问页面执行、改写、添加Javascript代码,可以解决许多问题,实现你想要的效果。

可以通过引用Microsoft.mshtml,实现对Javascript的操作,代码如下:


mshtml.IHTMLDocument2 doc = webBrowser1.Document.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript(@"alert('hello webbrowser')", "javascript");

其实还有一种更好的、无需引用Microsoft.mshtml的实现方式:


HtmlElement ele = webBrowser1.Document.CreateElement("script");
ele.SetAttribute("type", "text/javascript");
ele.SetAttribute("text", "alert('hello webbrowser')");
webBrowser1.Document.Body.AppendChild(ele);

这种使用.Net框架本身所提供的对象,相比引用框架外的COM,好处是显而易见的,这将更方便于安装部署至客户机上。

分类:雕虫小技 日期:2010年05月05日 评论:5条 阅读全文