原文出处 :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控件跨域访问页面内容的更多相关文章

  1. flash上传控件跨域

    工作中需要使用百度开发的ueditor,但服务器部署中前端代码和后端代码在不同的域名下,现已解决的前端调后端代码的跨域问题.可是,ueditor中的上传图片flash控件也涉及跨域问题,经过查找发现可 ...

  2. angularjs,Jsonp跨域访问页面

    angularjs1.6.8版本跨域 <!DOCTYPE html> <html ng-app="test"> <head> <meta ...

  3. <总结>delphi WebBrowser控件的使用中出现的bug

    Delphi WebBrowser控件的使用中出现的bug:  1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...

  4. 解决WebBrowser控件会导致应用程序占用内存居高不下问题

    WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增.WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件 ...

  5. VB webbrowser 控件的应用(跨域 内嵌网页元素的访问)

    自动登录财付通,难点在于会出现验证码,并且验证码页是在iframe元素下的,出于各种安全考虑,webbrowser控件不提供这种访问机制!当然,第一想到的是将这个网页拿出来,可是输入完毕验证码后,点击 ...

  6. 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容

    原文:使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容 第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也 ...

  7. C#彻底解决Web Browser 跨域读取Iframes内容

    C#彻底解决Web Browser 跨域读取Iframes内容 用C# winform的控件web browser 读取网页内容,分析一下数据,做一些采集工作. 如果是同一个域名下面还是好办的,基本上 ...

  8. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  9. C# Winform WebBrowser控件

    C# WinForm WebBrowser 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时 ...

随机推荐

  1. java 简单分页/总结

    模型(实体) dao层 dao的实现daoimpl层 service层 然后是servlet 把service层加载到servlet中就可以传值了,马上就能看见效果了 jsp页面来了 当然不能忘了在L ...

  2. angularjs开发遇到的坑

    1.用ng-model绑定的输入input标签不能序列化$("form").serialize();要在value赋值才行. 2.disabled 是不能被序列化提交的(这不属于n ...

  3. 安卓模拟器还是"genymotion"最靠谱.

    安卓模拟器还是"genymotion"最靠谱. genymotion

  4. ECHO is off

    执行 batch 脚本: @ECHO OFF @ECHO @ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Alert !!!!!!!!!!!!!!!!!!!!!!! ...

  5. Qt 获得终端执行结果

    代码 话不多直接上本人代码 void MainWindow::on_pushButton_3_clicked() { myprocess = new QProcess(this); myprocess ...

  6. python 在调用时计算默认值

    大家都知道python的默认值是在函数定义时计算出来的, 也就是说默认值只会计算一次, 之后函数调用时, 如果参数没有给出,同一个值会赋值给变量, 这会导致, 如果我们想要一个list默认值, 新手通 ...

  7. MongoDB源码分析——mongod程序源码入口分析

    Edit 说明:第一次写笔记,之前都是看别人写的,觉得很简单,开始写了之后才发现真的很难,不知道该怎么分析,这篇文章也参考了很多前辈对MongoDB源码的分析,也有一些自己的理解,后续将会继续分析其他 ...

  8. HttpClient4.3 使用经验(一) 简单使用

    package com.wp.nevel.base.utils; import java.io.BufferedOutputStream; import java.io.BufferedReader; ...

  9. ubuntu intelliJ IDEA 12.1.4 安装

    1 php插件 http://plugins.jetbrains.com/plugin/?id=6610 把插件下载到一个目录下,如果插件不兼容,多试几个版本! 2 打开ide, FILE -> ...

  10. SQLite学习第02天:数据类型

    参考资料:http://www.w3cschool.cc/sqlite/sqlite-data-types.html 在SQLite中,数据类型的概念看起来很模糊,刚开始接触感觉跟C语言提供的数据类型 ...