WebBrowser控件跨域访问页面内容
原文出處?:http://blog.csdn.net/nocky/article/details/6056802
源碼出處:http://www.codecentrix.com/blog/wnd2doc_csharp/GetDocumentFromWindowCsharp.zip
原作者的博客:http://codecentrix.blogspot.com/
現整理:
經過一天的折騰發現最后還是IE策略給限制了跨域訪問,之前使用編程的辦法和植入Script代碼的辦法,都是拒絕訪問的。
不過現在用了下邊的方法就可以解決了,代碼也不多。Dll和代碼均在工程文件里
//注意,需要手動引用 Interop.SHDocVw.dll,和.net 自帶的Microsoft.mshtml
下邊是實例:
using mshtml;
//需要調用的Frame
IHTMLWindow2 win = (IHTMLWindow2)webBrowser1.Document.Window.Frames["frame_some"].DomWindow;
//獲得Iframe doc
IHTMLDocument2 doc = CodecentrixSample.CrossFrameIE.GetDocumentFromWindow(win);
//body的信息
MessageBox.Show(doc.body.innerHTML);
//填充input
mshtml.IHTMLElementCollection inputs;
inputs = (mshtml.IHTMLElementCollection)doc.all.tags("INPUT");
mshtml.IHTMLElement element = (mshtml.IHTMLElement)inputs.item("txt_msg", 0);
mshtml.IHTMLInputElement inputElement = (mshtml.IHTMLInputElement)element;
inputElement.value = "填充信息";
總結
以上是生活随笔為你收集整理的WebBrowser控件跨域访问页面内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马王堆汉墓女尸(说一说马王堆汉墓女尸的简
- 下一篇: 市场营销影响消费者购买行为的因素有哪些(