这是在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控件里的脚本 (转自思归呓语)相关推荐

  1. IE调用WebBrowser控件实现WEB打印、分页打印、无预览打印

    WebBrowser控件 WebBrowser ActiveX 控件提供托管的包装. 托管的包装便可以在 Windows 窗体客户端应用程序中显示网页. 你可以使用WebBrowser控件重复中你的应 ...

  2. 控制 WebBrowser 控件的外观和行为

    控制 WebBrowser 控件的外观和行为 2011-03-23 09:33 在 CSDN 上经常看到以下两个问题: 1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 C ...

  3. 用 .Net WebBrowser 控件获取POST数据

    用 .Net WebBrowser 控件获取POST数据     很多应用中,开发者需要自己构建一个浏览器,并且对通过这个浏览器提交的请求进行截获,比如用户通过这个浏览器浏览了一个网页,并向网站提交( ...

  4. C#Winform中WebBrowser控件的特性和详细调用方法

    该博客系转发自http://www.ityoudao.com/Web/Csharp_590_1779.html,感觉此文章讲的不错,遂转发和大家分享.   WebBrowser控件简介 WebBrow ...

  5. pb调用计算机默认游览器,PB打开ole控件IE浏览器版本问题_指定Webbrowser控件所用IE内核版本(转)...

    如果电脑上安装了IE8或者之后版本的IE浏览器,Webbrowser控件会使用IE7兼容模式来显示网页内容.解决方法是在注册表中为你的进程指定引用IE的版本号. 比如我的程序叫做a.exe 对于32位 ...

  6. 『Winform』C# Winform WebBrowser控件中操作网页元素大全

    文章目录 1.获取非input控件的值 2.获取input控件的值 3.给输入框赋值 4.CheckBox选中 5.根据已知有ID的元素操作没有ID的元素 6.获取Div或其他元素的样式 7.直接执行 ...

  7. 【转载】c#多线程使用webbrowser控件

    本来打算在完成事件中分析页面的,可是郁闷了半天,根本就没有完成处理函数的调用,搜索得到解决,在此感谢原文作者http://www.soaspx.com/dotnet/csharp/csharp_201 ...

  8. WebBrowser控件参数解释

    方法 说明 GoBack '相当于IE的"后退"按钮,使你在当前历史列表中后退一项 GoForward ' 相当于IE的"前进"按钮,使你在当前历史列表中前进一 ...

  9. c#中WebBrowser控件的使用方法

    首先先来简单介绍一下webbrowser控件,这个控件是可以实现在form窗体中添加网页内容的.如图,我在form中加入了百度api,(百度地图api调用博客里有讲) 使用这个控件其实很简单 (1)第 ...

  10. 【WPF】监听WPF的WebBrowser控件弹出新窗口的事件

    WPF中自带一个WebBrowser控件,当我们使用它打开一个网页,例如百度,然后点击它其中的链接时,如果这个链接是会弹出一个新窗口的,那么它会生生的弹出一个IE窗口来,而不是在内部跳到该链接. 如果 ...

最新文章

  1. 用sql语句实现按时间求累计值
  2. python 多态 知乎_Python函数接口的一些设计心得
  3. Java集合类: Set、List、Map、Queue区别及应用
  4. 贝叶斯学习举例--学习分类文本
  5. mysql5.6.37免安装_mysql5.6免安装配置
  6. 程序员何苦为难程序员!
  7. oracle 里数据的编码格式,oracle 数据的编码格式
  8. python *args **kargs
  9. 2019年2月25日 Range Sum of BST
  10. 【CS229】监督学习 vs. 无监督学习
  11. 初学者易上手的SSH-hibernate01环境搭建
  12. win7怎么看计算机Mac地址,Win7怎么查看MAC地址?Win7查看MAC地址的两种方法
  13. 在线教育十字路口:新东方遭危机 YY欲成颠覆者
  14. English语法_形容词/副词3级 - 原级
  15. 面试突击63:distinct 和 group by有什么区别?
  16. 利用python爬取教务系统中成绩
  17. 【shapely】自相交问题
  18. 执念于当下的平淡为美好
  19. Hive有分区文件到时select不到数据问题-----修复分区命令 msck repair table xxxxx
  20. 常用语言注释使用格式

热门文章

  1. 生命剩下24小时应该做什么
  2. 管理感悟:软件的特性
  3. 纽微特记事:有了工作产出,领导吓坏了
  4. 买手机数据线特别要注意的地方
  5. channelsftp实现两个xftp之间文件互传_基于Jsch实现Java操作linux服务器
  6. vue项目整合到springboot方法
  7. 计算机硬件小游戏,小学信息技术第一册《认识计算机——计算机的硬件组成》教案...
  8. mysql sys cpu_MySQL SYS CPU高的案例分析(一)
  9. pymysql安装_jqdatasdk手动安装
  10. 天津农学院计算机科学与技术在那个校区,天津农学院有几个校区及校区地址