求救!用HtmlElement来模拟单击事件后,页面不跳转??

leaf_2011 2013-05-13 09:35:57
页面代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<META name="GENERATOR" content="IBM WebSphere Studio">
<META http-equiv="Content-Style-Type" content="text/css">
<title>系统</title>
<script src="js/checkform.js"></script>
<script language="JavaScript" src="js/common.js"></script>
<script language="JavaScript">
function docheckform() {
if (!check_empty('LoginForm._user|_password','用户名|登录密码'))
return false;
else
return true;
}
</script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" nload="javascript:LoginForm._user.focus();window.status=' '">
<FORM NAME="LoginForm" METHOD="POST" ACTION="/ODWEKWeb/ODLogon" onSubmit="return docheckform()">
<table border="0" width="100%" id="table5" height="337">
<input type=text name=_user size=10 maxlength="15" style="height: 20; width: 111; border: 1px inset; padding-top: 2px" value=""/></td>
<input type=submit value="   " style="background: transparent; border: 0; cursor: hand" /></td>
<input type=password name=_password maxlength="50" style="height: 20; width: 111; border: 1px inset; padding-top: 2px" value=""/></td>
<input type=reset value="   " style="background: transparent; border: 0; cursor: hand" /></td>
</table>
</form>
</body>
</html>


逻辑代码:
private void Form1_Load(object sender, EventArgs e)
{
string url = "www.wag135.com";
webBrowserWu.Navigate(url);
}
private void webBrowserWu_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement ClickBtn = null;
HtmlDocument doc = webBrowserWu.Document;
for (int i = 0; i < doc.All.Count; i++)
{
if (doc.All[i].TagName.ToUpper().Equals("INPUT") || doc.All[i].TagName.ToUpper().Equals("FORM"))
{
switch (doc.All[i].Name)
{
case "_user":
doc.All[i].InnerText = "11";
break;
case "_password":
doc.All[i].InnerText = "1";
break;
case "LoginForm":
ClickBtn = doc.All[i]; //提交按钮
break;
}
}

}
ClickBtn.InvokeMember("onSubmit"); //执行按扭操作
}


页面一直停到www.wag135.com上,不跳转到www.wag135.com/ODWEKWeb/ODLogon上去,如果去掉参数_user的值,则报错要求输入用户名,所以已经执行了 ClickBtn.InvokeMember("onSubmit");这句,但始终不跳转,恳求给位大神指点
...全文
227 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leaf_2011 2013-05-16
  • 打赏
  • 举报
回复
引用 4 楼 ly_longyue 的回复:
晕死,你那个判断可能有问题,你先把 js 验证 给干掉
木有办法拿掉,那是别人网站的,我只是想自动登录而已,但是始终不能跳转页面,,哥,有办法嘛,谢谢啦
龍月 2013-05-16
  • 打赏
  • 举报
回复
晕死,你那个判断可能有问题,你先把 js 验证 给干掉
leaf_2011 2013-05-15
  • 打赏
  • 举报
回复
引用 2 楼 findcaiyzh 的回复:
我觉得有两个疑点: 1. doc.All[i].InnerText = "11". innerText指的是两个tag之间的内容,例如<span>this is inner text</span>, 对于Text类型的Input. 要设置Value: 类似于: HtmlDocument doc = this.webBrowser1.Document; doc.GetElementById("myId").SetAttribute("Value", "someValue"); 你的应该就是 doc.All[i].SetAttribute("Value", "11"); 2. onSubmit是Form的属性,你在button上调用,显然是不行的。 我没有见过调用onSubmit的,一般都是调用按钮点击事件: ClickBtn.InvokeMember("click");
赋值的代码改为doc.All[i].SetAttribute("Value", "11")后,文本框里面不能赋值了,使用click点击事件后,也不能触发跳转事件,如果去掉用户名和密码的值,也不提示要求输入用户名和密码。使用原来 ClickBtn.InvokeMember("onSubmit")时,没有输入用户名,却要提示输入用户名,求求这是什么问题!感谢哒!
宝_爸 2013-05-14
  • 打赏
  • 举报
回复
我觉得有两个疑点: 1. doc.All[i].InnerText = "11". innerText指的是两个tag之间的内容,例如<span>this is inner text</span>, 对于Text类型的Input. 要设置Value: 类似于: HtmlDocument doc = this.webBrowser1.Document; doc.GetElementById("myId").SetAttribute("Value", "someValue"); 你的应该就是 doc.All[i].SetAttribute("Value", "11"); 2. onSubmit是Form的属性,你在button上调用,显然是不行的。 我没有见过调用onSubmit的,一般都是调用按钮点击事件: ClickBtn.InvokeMember("click");
龍月 2013-05-14
  • 打赏
  • 举报
回复
因为你 docheckform 一直返回 了false.虽然表单提交了,但是会阻止跳转.

function docheckform() {
    return true;
   }  
直接改成这样不判断看是否跳转

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧