c# webBrowser1 模拟点击超链接后,如何获取连接页面的信息(ajax ),需要不弹出窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# webBrowser1 模拟点击超链接后,如何获取连接页面的信息(ajax ),需要不弹出窗口相关的知识,希望对你有一定的参考价值。

我现在有一个form1和一个form2,webBrowser1放在form1里,程序模拟点击后是弹出新窗口form1,如果设置跳出的新窗口放在form2里,那么会出现错误“/”应用程序中的服务器错误。 网站是asp.net开发的的,支持ajax ,post方式。这个如何解决,我只想获取超链接后页面的内容。

参考技术A public AxSHDocVw.AxWebBrowser _axWebBrowser;
public class HE_WebBrowserTag

//注意,每一个WebBrowser控件都有一个tag,我定义成一个简单的class,它用来包含一些该控件相关的独有信息。请看:
public int _TabIndex = 0;
public bool _CanBack = false;
public bool _CanForward = false;


private void axWebBrowser1_NewWindow2(object sender, AxSHDocVw.DWebBrowserEvents2_NewWindow2Event e)

_axWebBrowser = CreateNewWebBrowser();
e.ppDisp = _axWebBrowser.Application;



private AxSHDocVw.AxWebBrowser CreateNewWebBrowser()

AxSHDocVw.AxWebBrowser _axWebBrowser = new AxSHDocVw.AxWebBrowser();
_axWebBrowser.Tag = new HE_WebBrowserTag();
TabPage _TabPage = new TabPage();
_TabPage.Controls.Add(_axWebBrowser);
_axWebBrowser.Dock = DockStyle.Fill;

//_axWebBrowser.DocumentComplete += new AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(this.axWebBrowser1_DocumentComplete);
tabControl1.TabPages.Add(_TabPage); tabControl1.SelectedTab = _TabPage;
return _axWebBrowser;
参考技术B 捕获webBrowser控件的NewWindow事件和Nativageting2事件就可以处理掉了追问

这个试过了,会出现错误。

追答

看微软的文档,直接拖出来的肯定报错,
MSDN关于WebBrowser控件的文档很详细的描述,

参考技术C 不好搞,因为winform不是一个浏览器,所以即使你点击弹出新的窗口,有可能数据都带不过去,想别的解决方案把追问

就是想不到其他办法了,现在停在这一步了

追答

如果你想自己做一个浏览器的话,那WinForm的WebBrowser不适合你,弹出新的窗口没办法保留原来窗口的信息

追问

那用什么控件或者用什么办法可以实现,我只是想获取页面的信息,但是一般的通过地址获取会出错,所以只有模拟点击提交

追答

模拟点击也不一定要弹出窗口吧,弹出的窗口跟之前的窗口有关联么

追问

获取的数据需要提交到第一个窗口,如果不弹出窗口,那么如何实现,请教下

追答

post提交应该是提交到服务器,跟提交到哪个窗口有什麼关系

本回答被提问者和网友采纳

以上是关于c# webBrowser1 模拟点击超链接后,如何获取连接页面的信息(ajax ),需要不弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何修改使用C#的请求的HTTP头

c# webBrowser如何获取弹出提示框内容并模拟点击?

易语言怎么webbrowser1中模拟鼠标单击?

通过ID webBrowser1 c#获取href链接

C# webBrowser1 获取提交后网页的内容

webkit 模拟点击 winform