打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
利用webBrowser实现自动提交页面的方法

一、第一种方法貌似网上很少有人提。。。。就是使用javascript去控制页面。

熟悉javascript的人知道,它主要是用来控制客户端浏览器上行为动作的语言。

用浏览器随便打开一个页面,在地址栏输入: javascript:alert("a");void(0); 确认,就会弹出警告框。也就是说,可以通过在地址栏输入js代码,控制页面中内容。

比如要添表单,可以 javascript:document.getElementById("username").value="http://blogbeta.blueidea.com/warran";document.getElementById("password").value="123456";void(0);

那么,使用webBrowser,通过js去控制页面,提交表单。

webBrowser1.Navigate("javascript:document.getElementById(/"username/").value="http://blogbeta.blueidea.com//"warran/";document.getElementById(/"password/").value=/"123456/";void(0);");

如果还要提交表单,可以加上document.form1.submit();" 就可以了。

不过用这个方法,要注意两点:

1、在一次运行中,不能多次使用。

比如

private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("javascript:document.getElementById("username").value="http://blogbeta.blueidea.com/warran";void(0);");

            webBrowser1.Navigate("javascript:document.getElementById("password").value="123456";void(0);");
        }

这样,就会出问题。结果是没反映。。。。但改成如下,就可以,但基本上,这样不适合实际应用。

private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("javascript:document.getElementById("username").value="warran";void(0);");

            messageBox.Show("aaa");

            webBrowser1.Navigate("javascript:document.getElementById("password").value="123456";void(0);");
        }

就是说弹个警告框,就可正常运行了。大致意思就是让主窗口重新激活一下,才行。。。

2、Navigate中的js代码不能过长,不然仍然会不执行。。。。

 

二、第二种方法。也是推荐使用的方法,使用ihtmldocument2的类去控制。

1、添加引用。

在COM中,选择Microsoft.mshtml

2、使用命名空间。

using mshtml;

3、具体代码。

IHTMLDocument2 doc = (IHTMLDocument2)this.webBrowser1.Document.DomDocument;

mshtml.HTMLInputTextElement text1;

text1 = (HTMLInputTextElement)doc.all.item("username", 0);
((mshtml.HTMLInputElement)(text1)).value = "warran";

//这里注意,因为是input输入框,所以要定义HTMLInputTextElement类

text1 = (HTMLInputTextElement)doc.all.item("password", 0);
((mshtml.HTMLInputElement)(text1)).value = "123456";

mshtml.HTMLFormElement f1 = (mshtml.HTMLFormElement)doc.all.item("form1", 0);
((HTMLFormElement)(f1)).submit();

//因为是form表单,所以要定义HTMLFormElement类

 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
WinForms C#:html编辑器工程源码,含直接写WebBrowser的文件流、IPersistStreamInit接口的声明和一些相关的小方法
C# Webbrowser截屏 禁止弹出窗口及脚本错误提示 截取flash 视频
如何用mshtml获得Javascript中function的返回值[mshtml]
href="#"与javascript:void(0)的区别
href=“#”的误区与作用
html_a标签中调用js函数的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服