在winform里怎么调用WebBrowser控件里的脚本
来源:互联网 发布:时间旅行者的妻子 知乎 编辑:程序博客网 时间:2024/04/30 13:57
from http://blog.joycode.com/saucer/archive/2004/10/16/35628.aspx
这是在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" onclick="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");
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本
- 在winform里怎么调用WebBrowser控件里的脚本 (转自思归呓语)
- 在winform里怎么调用WebBrowser控件里的脚本(转载)
- 在服务器控件里调用前台脚本
- VB.net 里的WebBrowser 怎么使用-WebBrowser指南
- c# winform程序在WebBrowser控件中执行javascript脚本
- 我只想在ASP.NET里做出个类似WinForm里的DateTimePicker控件
- [C#] Winform里调用系统里默认的邮件客户端
- visual C# 的winform里statusStrip控件怎么显示系统时间
- 在WinForm里绘图
- VC 如何在线程里调用主窗口的控件。
- C# Winform 怎么让按钮在Panel里居中显示
- webbrowser 里的js调用C#窗体的函数
- mfc里使用webbrowser控件的一点体会
- Spket IDE, Ext开发人员的紫色匕首~
- CListCtrl 使用技巧
- 推荐一款SVN客户端:pysvn
- Mapx 属性数据文件用oledb方式访问的问题
- 需求调研中有效沟通系列--如何提问?
- 在winform里怎么调用WebBrowser控件里的脚本
- 无法确定的未来
- POJO----名词解释
- 信产部解冻固定电话资费 难抵移动业务分流影响(fm:中国经营报)
- JS里面增加事件
- 我国电信业市场秩序现状分析(转)
- POJO 与 PO的 概念
- Get-Date 帮助信息
- .net/c# 从0开始 (1)引用与注释