请教个c#利用webbrowser控件做的winform程序问题 本帖最后由 spishero 于 2010-04-19 20:45:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码:private void Form1_Load(object sender, EventArgs e){ webBrowser1.Navigate("http://bbs.csdn.net");}private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){ Console.WriteLine(e.Url);}输出about:blankhttp://community.csdn.net/WebNavigation/ForumContent.aspxhttp://community.csdn.net/WebNavigation/Navigation.aspxhttp://community.csdn.net/ASCX/NewHomePage/CFocusListBoard.htmhttp://community.csdn.net/ASCX/NewHomePage/TopBoard.htmhttp://community.csdn.net/ASCX/NewHomePage/BottomBoard.htmhttp://community.csdn.net/ASCX/NewHomePage/MiddleBoard.htmhttp://www.csdn.net/ggmm/dd333.htmhttp://community.csdn.net/HomePage.aspxhttp://community.csdn.net/明白没?打开一个页面可能多次触发DocumentCompleted事件,这时你需要判断一下url另外操作webBrowser最好统一使用javascript维护成本最低参考:WebBrowser执行脚本和调用外部方法。 谢谢大哥回答,在DocumentCompleted事件里,是有多次触发,在这里我也进行过处理if (e.Url != webBrowser.Document.Url) return;if (webBrowser.ReadyState=WebBrowserReadyState.Complete) return;这样的2次应该可以防止掉吧 上面少些了个!是:if (e.Url != webBrowser.Document.Url) return;if (webBrowser.ReadyState != WebBrowserReadyState.Complete) return; HtmlElement hElement; hElement = WebBrowser.Document.GetElementById("selectId");hElement.SetAttribute("selectedIndex", "1");http://topic.csdn.net/u/20070524/17/7cfe935f-dcbb-42ab-8a1e-6a01ee40b89d.html 将e.Url,webBrowser.Document.Url值输出(或者是断点),看看是不是你期望的 这个url值确实是我要的那个页面的url,是不是因为我用的webBrowser.Document.GetElementsByTagName("select")[0].RaiseEvent("onchange");导致页面在加载js重定向url时出现了问题因为调试的时候,这个方法也触发了DocumentCompleted事件忘大哥指点。。 我的.NET如何走? 如何打开共享服务器的文件例如file://Server\Filename.docx 线程不能启动!!! System.NullReferenceException: 未将对象引用设置到对象的实例 谁帮帮我呀,做毕设呢 【C#菜鸟一个】请教各位大大、关于Visual Studio 2010 帮助问题 字节数组 转 整型数 ,还有其他好办法? Process.Start打开进程不出现窗口 如何修改TreeView 節點字體 怎么屏蔽键盘呢? 如何知道所选择节点在TreeView控件中是第几层子节点? 怎样设置vs2008中文件的路径? 怎么将JPE转成ICO格式图片
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://bbs.csdn.net");
}private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
Console.WriteLine(e.Url);
}输出
about:blank
http://community.csdn.net/WebNavigation/ForumContent.aspx
http://community.csdn.net/WebNavigation/Navigation.aspx
http://community.csdn.net/ASCX/NewHomePage/CFocusListBoard.htm
http://community.csdn.net/ASCX/NewHomePage/TopBoard.htm
http://community.csdn.net/ASCX/NewHomePage/BottomBoard.htm
http://community.csdn.net/ASCX/NewHomePage/MiddleBoard.htm
http://www.csdn.net/ggmm/dd333.htm
http://community.csdn.net/HomePage.aspx
http://community.csdn.net/明白没?打开一个页面可能多次触发DocumentCompleted事件,这时你需要判断一下url另外操作webBrowser最好统一使用javascript维护成本最低
参考:WebBrowser执行脚本和调用外部方法。
if (webBrowser.ReadyState=WebBrowserReadyState.Complete) return;
这样的2次应该可以防止掉吧
是:if (e.Url != webBrowser.Document.Url) return;
if (webBrowser.ReadyState != WebBrowserReadyState.Complete) return;
hElement = WebBrowser.Document.GetElementById("selectId");
hElement.SetAttribute("selectedIndex", "1");http://topic.csdn.net/u/20070524/17/7cfe935f-dcbb-42ab-8a1e-6a01ee40b89d.html
这个url值确实是我要的那个页面的url,是不是因为我用的webBrowser.Document.GetElementsByTagName("select")[0].RaiseEvent("onchange");
导致页面在加载js重定向url时出现了问题
因为调试的时候,这个方法也触发了DocumentCompleted事件忘大哥指点。。