在winform里怎么调用WebBrowser控件里的脚本 (转自思归呓语)
这是在CSDN论坛上的一个问题,感觉也许对其他人也会有点用处,所以贴出来
JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里的方法是通过反射来实现的,即,通过System.Type.InvokeMember 。该方法调用 IDispatch::GetIDsOfNames 以及IDispatch::Invoke来调用COM Automation 对象里的方法和属性。参考
Binding for Office automation servers with Visual C# .NET
假如有下列HTML,
<script language="javascript">
var var1 = 'yes';
function testx(obj)
{
alert(obj);
alert(var1);
}
</script>
<input type=button value="click me" οnclick="testx('hello');">
在C#里,假设axWebBrowser1是你的WebBrowser控件对象,你已经装载了上述HTML,你可以这么做,
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)axWebBrowser1.Document;
mshtml.IHTMLWindow2 win = (mshtml.IHTMLWindow2)doc.parentWindow;
//读变量值
object o = win.GetType().InvokeMember ("var1", BindingFlags.GetProperty, null, win, new Object [] {});
//写变量值
win.GetType().InvokeMember ("var1", BindingFlags.SetProperty, null, win, new Object [] {"新的值"});
//调用方法
win.GetType().InvokeMember("testx",BindingFlags.InvokeMethod,null,win,new object[]{1});
比较麻烦,对么?幸运的是,我们不用这么麻烦,因为IHTMLWindow2里有个现成方法,execScript,我们可以这么做:
win.execScript("var1 = 'abc';","javascript");
win.execScript("testx(12)","javascript");
转载于:https://www.cnblogs.com/ZetaChow/archive/2006/07/21/2237421.html
在winform里怎么调用WebBrowser控件里的脚本 (转自思归呓语)相关推荐
- IE调用WebBrowser控件实现WEB打印、分页打印、无预览打印
WebBrowser控件 WebBrowser ActiveX 控件提供托管的包装. 托管的包装便可以在 Windows 窗体客户端应用程序中显示网页. 你可以使用WebBrowser控件重复中你的应 ...
- 控制 WebBrowser 控件的外观和行为
控制 WebBrowser 控件的外观和行为 2011-03-23 09:33 在 CSDN 上经常看到以下两个问题: 1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 C ...
- 用 .Net WebBrowser 控件获取POST数据
用 .Net WebBrowser 控件获取POST数据 很多应用中,开发者需要自己构建一个浏览器,并且对通过这个浏览器提交的请求进行截获,比如用户通过这个浏览器浏览了一个网页,并向网站提交( ...
- C#Winform中WebBrowser控件的特性和详细调用方法
该博客系转发自http://www.ityoudao.com/Web/Csharp_590_1779.html,感觉此文章讲的不错,遂转发和大家分享. WebBrowser控件简介 WebBrow ...
- pb调用计算机默认游览器,PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)...
如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...
- 『Winform』C# Winform WebBrowser控件中操作网页元素大全
文章目录 1.获取非input控件的值 2.获取input控件的值 3.给输入框赋值 4.CheckBox选中 5.根据已知有ID的元素操作没有ID的元素 6.获取Div或其他元素的样式 7.直接执行 ...
- 【转载】c#多线程使用webbrowser控件
本来打算在完成事件中分析页面的,可是郁闷了半天,根本就没有完成处理函数的调用,搜索得到解决,在此感谢原文作者http://www.soaspx.com/dotnet/csharp/csharp_201 ...
- WebBrowser控件参数解释
方法 说明 GoBack '相当于IE的"后退"按钮,使你在当前历史列表中后退一项 GoForward ' 相当于IE的"前进"按钮,使你在当前历史列表中前进一 ...
- c#中WebBrowser控件的使用方法
首先先来简单介绍一下webbrowser控件,这个控件是可以实现在form窗体中添加网页内容的.如图,我在form中加入了百度api,(百度地图api调用博客里有讲) 使用这个控件其实很简单 (1)第 ...
- 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件
WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗口的,那么它会生生的弹出一个IE窗口来,而不是在内部跳到该链接. 如果 ...
最新文章
- 用sql语句实现按时间求累计值
- python 多态 知乎_Python函数接口的一些设计心得
- Java集合类: Set、List、Map、Queue区别及应用
- 贝叶斯学习举例--学习分类文本
- mysql5.6.37免安装_mysql5.6免安装配置
- 程序员何苦为难程序员!
- oracle 里数据的编码格式,oracle 数据的编码格式
- python *args **kargs
- 2019年2月25日 Range Sum of BST
- 【CS229】监督学习 vs. 无监督学习
- 初学者易上手的SSH-hibernate01环境搭建
- win7怎么看计算机Mac地址,Win7怎么查看MAC地址?Win7查看MAC地址的两种方法
- 在线教育十字路口:新东方遭危机 YY欲成颠覆者
- English语法_形容词/副词3级 - 原级
- 面试突击63:distinct 和 group by有什么区别?
- 利用python爬取教务系统中成绩
- 【shapely】自相交问题
- 执念于当下的平淡为美好
- Hive有分区文件到时select不到数据问题-----修复分区命令 msck repair table xxxxx
- 常用语言注释使用格式
热门文章
- 生命剩下24小时应该做什么
- 管理感悟:软件的特性
- 纽微特记事:有了工作产出,领导吓坏了
- 买手机数据线特别要注意的地方
- channelsftp实现两个xftp之间文件互传_基于Jsch实现Java操作linux服务器
- vue项目整合到springboot方法
- 计算机硬件小游戏,小学信息技术第一册《认识计算机——计算机的硬件组成》教案...
- mysql sys cpu_MySQL SYS CPU高的案例分析(一)
- pymysql安装_jqdatasdk手动安装
- 天津农学院计算机科学与技术在那个校区,天津农学院有几个校区及校区地址