C# winform webbrowser 怎么获取网页内框架的链接地址

时间:2022-11-26 12:02:43
C# winform webbrowser 怎么获取网页内框架的链接地址

webBrowser1.Document.Window.Frames.Count可以得到网页的框架数量
webBrowser1.Document.Window.Frames[0].Document.Url.ToString();出现以下错误:

“System.UnauthorizedAccessException”类型的未经处理的异常在 System.Windows.Forms.dll 中发生 
其他信息: 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))

在网上找不到答案啊。

这片文章看不懂,有点难,有没有简单的方法??
http://www.cnblogs.com/heqichang/archive/2012/12/29/2838662.html

2 个解决方案

#1


因为要防止跨域脚本的原因所以IE会报拒绝访问的错误。通过框架元素的IWebBrowser2接口访问目前可以绕过这个限制。
这还不算简单的办法的话不知道什么才算了。

#2


参照你那个链接试试, 那个GetDocumentFromWindow方法你直接copy用就行了
var doc = this.webBrowser1.Document;
            var frames = doc.Window.Frames;
            IHTMLDocument3 baiduDoc = CorssDomainHelper.GetDocumentFromWindow(frames[0].DomWindow as IHTMLWindow2);
var url=baiduDoc.Url;

#1


因为要防止跨域脚本的原因所以IE会报拒绝访问的错误。通过框架元素的IWebBrowser2接口访问目前可以绕过这个限制。
这还不算简单的办法的话不知道什么才算了。

#2


参照你那个链接试试, 那个GetDocumentFromWindow方法你直接copy用就行了
var doc = this.webBrowser1.Document;
            var frames = doc.Window.Frames;
            IHTMLDocument3 baiduDoc = CorssDomainHelper.GetDocumentFromWindow(frames[0].DomWindow as IHTMLWindow2);
var url=baiduDoc.Url;