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控件跨域访问页面内容的更多相关文章
- flash上传控件跨域
工作中需要使用百度开发的ueditor,但服务器部署中前端代码和后端代码在不同的域名下,现已解决的前端调后端代码的跨域问题.可是,ueditor中的上传图片flash控件也涉及跨域问题,经过查找发现可 ...
- angularjs,Jsonp跨域访问页面
angularjs1.6.8版本跨域 <!DOCTYPE html> <html ng-app="test"> <head> <meta ...
- <总结>delphi WebBrowser控件的使用中出现的bug
Delphi WebBrowser控件的使用中出现的bug: 1.WebBrowser.Visible=false:Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowse ...
- 解决WebBrowser控件会导致应用程序占用内存居高不下问题
WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增.WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件 ...
- VB webbrowser 控件的应用(跨域 内嵌网页元素的访问)
自动登录财付通,难点在于会出现验证码,并且验证码页是在iframe元素下的,出于各种安全考虑,webbrowser控件不提供这种访问机制!当然,第一想到的是将这个网页拿出来,可是输入完毕验证码后,点击 ...
- 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容
原文:使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容 第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也 ...
- C#彻底解决Web Browser 跨域读取Iframes内容
C#彻底解决Web Browser 跨域读取Iframes内容 用C# winform的控件web browser 读取网页内容,分析一下数据,做一些采集工作. 如果是同一个域名下面还是好办的,基本上 ...
- SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...
- C# Winform WebBrowser控件
C# WinForm WebBrowser 1.主要用途:使用户可以在窗体中导航网页. 2.注意:WebBrowser 控件会占用大量资源.使用完该控件后一定要调用 Dispose 方法,以便确保及时 ...
随机推荐
- java 简单分页/总结
模型(实体) dao层 dao的实现daoimpl层 service层 然后是servlet 把service层加载到servlet中就可以传值了,马上就能看见效果了 jsp页面来了 当然不能忘了在L ...
- angularjs开发遇到的坑
1.用ng-model绑定的输入input标签不能序列化$("form").serialize();要在value赋值才行. 2.disabled 是不能被序列化提交的(这不属于n ...
- 安卓模拟器还是"genymotion"最靠谱.
安卓模拟器还是"genymotion"最靠谱. genymotion
- ECHO is off
执行 batch 脚本: @ECHO OFF @ECHO @ECHO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Alert !!!!!!!!!!!!!!!!!!!!!!! ...
- Qt 获得终端执行结果
代码 话不多直接上本人代码 void MainWindow::on_pushButton_3_clicked() { myprocess = new QProcess(this); myprocess ...
- python 在调用时计算默认值
大家都知道python的默认值是在函数定义时计算出来的, 也就是说默认值只会计算一次, 之后函数调用时, 如果参数没有给出,同一个值会赋值给变量, 这会导致, 如果我们想要一个list默认值, 新手通 ...
- MongoDB源码分析——mongod程序源码入口分析
Edit 说明:第一次写笔记,之前都是看别人写的,觉得很简单,开始写了之后才发现真的很难,不知道该怎么分析,这篇文章也参考了很多前辈对MongoDB源码的分析,也有一些自己的理解,后续将会继续分析其他 ...
- HttpClient4.3 使用经验(一) 简单使用
package com.wp.nevel.base.utils; import java.io.BufferedOutputStream; import java.io.BufferedReader; ...
- ubuntu intelliJ IDEA 12.1.4 安装
1 php插件 http://plugins.jetbrains.com/plugin/?id=6610 把插件下载到一个目录下,如果插件不兼容,多试几个版本! 2 打开ide, FILE -> ...
- SQLite学习第02天:数据类型
参考资料:http://www.w3cschool.cc/sqlite/sqlite-data-types.html 在SQLite中,数据类型的概念看起来很模糊,刚开始接触感觉跟C语言提供的数据类型 ...