C# ActiveX调用JS函数
来源:互联网 发布:帝王三国单机无需网络 编辑:程序博客网 时间:2024/05/17 08:14
参考文档:http://blog.csdn.net/cds27/article/details/7533479
C# 在winform里调用WebBrowser控件里的脚本:
IHTMLDocument2 doc = (IHTMLDocument2)webBrowser1.Document.DomDocument;
IHTMLWindow2 win = (IHTMLWindow2)doc.parentWindow;
win.execScript("vote(10068)", "javascript");
需要增加引用
在项目里,添加引用,找到 。NET下的 Microsoft.mshtml再在程序页面上面加入using mshtml;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");
转:http://hi.baidu.com/ch188838820/item/2426f00f4d444017addc70e3
- C# ActiveX调用JS函数
- C# ActiveX调用JS函数的便捷方法与思路
- C# ActiveX 调用页面JS
- C#创建activex供js调用
- Js 中调用 ActiveX 中的函数
- Js 中调用 ActiveX 中的函数
- ActiveX回调js函数 之 变量调用
- c# 调用js函数
- C# ActiveX 与JS 交互,只介绍JS调用ActiveX的情况
- C#编写activeX控件与js相互调用
- C#调用ActiveX控件
- js调用activeX
- JS调用ActiveX方法
- ActiveX调用JS
- 在ActiveX里调用html中的js函数
- ActiveX调用 js脚本方法
- 在Js调用ActiveX方法
- C#后台调用前台Js函数
- void InputDlg::slotName()
- silverligth datagrid 分组
- cython安装、使用
- 深入掌握JMS JMSCorrelationID与Selector
- 用jQuery在图片加载完成后改变图片大小
- C# ActiveX调用JS函数
- oracle/plsql 的临时表
- Nginx 的启动、停止、平滑重启、信号控制和平滑升级
- 用一条sql统计所一个班级的男女人数
- JavaScript调用ActiveX控件
- Java 自动识别文件编码
- JBOSS体系架构
- AVL树的实现(C++)
- 运用范型开发方式加快开发速度