在winform里怎么调用WebBrowser控件里的脚本

原创 2007年09月06日 19:04:00

这是在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控件里的脚本

 这是在CSDN论坛上的一个问题,感觉也许对其他人也会有点用处,所以贴出来JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里...
  • MatrixB
  • MatrixB
  • 2007-09-07 08:42:00
  • 366

在winform里怎么调用WebBrowser控件里的脚本(转载)

 这是在CSDN论坛上的一个问题,感觉也许对其他人也会有点用处,所以贴出来JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里...
  • turejackon
  • turejackon
  • 2009-11-07 10:09:00
  • 385

关于 WinForm中webbrowser控件的使用

 webbrowser是一个比较实用的工具,主要用于在winform窗体中嵌入浏览器,达到winform与webform互操作的目的。         private void Form1...
  • xsfqh
  • xsfqh
  • 2016-12-17 15:43:05
  • 1152

Winform-WebBrowser控件嵌入网页

WPF制作控件闪烁(报警)效果!
  • yangyisen0713
  • yangyisen0713
  • 2014-01-09 15:00:29
  • 3057

C# Winform WebBrowser控件

C# WinForm WebBrowser  1、主要用途:使用户可以在窗体中导航网页。 2、注意:WebBrowser 控件会占用大量资源。使用完该控件后一定要调用 Dispose 方法...
  • wsh_mar
  • wsh_mar
  • 2016-05-31 09:53:28
  • 2124

在winform里怎么调用WebBrowser控件里的脚本 (转自思归呓语)

这是在CSDN论坛上的一个问题,感觉也许对其他人也会有点用处,所以贴出来JScript是建立在COM之上的,设置变量/调用函数是通过IDispatch来实现的。在.NET里,调用IDispatch里的...
  • banmuhuangci
  • banmuhuangci
  • 2006-07-21 09:10:00
  • 1065

c# winform程序在WebBrowser控件中执行javascript脚本

来自:http://outofmemory.cn/code-snippet/1706/c-winform-program-WebBrowser-control-execution-javascript...
  • ArvinStudy
  • ArvinStudy
  • 2013-03-07 16:00:00
  • 2394

WinForm webbrowser控件的使用

webbrowser是一个比较实用的工具,主要用于在winform窗体中嵌入浏览器,达到winform与webform互操作的目的。 先上一个demo,看一下能实现什么效果。 ...
  • jumtre
  • jumtre
  • 2015-03-15 21:21:55
  • 1530

把脚本添加到系统服务里面(将不支持chkconfig的服务设置开机自启)

把脚本天机到系统服务,即用service调用。 这里以zabbix为例。 zabbix-server和zabbix-agent都不支持chkconfig。改怎么设置开机自启?方法是编辑启动脚本:[...
  • weixin_37998647
  • weixin_37998647
  • 2017-12-30 14:51:22
  • 165

C#中如何执行sql脚本?

在C#中执行SQL脚本,可以考虑使用osql工具。Example : #region 调用Osql.exe执行建库脚本/// /// 调用Osql.exe执行建库脚本/// /// 数据库访问用户名/...
  • jxufewbt
  • jxufewbt
  • 2007-05-30 14:23:00
  • 1175
收藏助手
不良信息举报
您举报文章:在winform里怎么调用WebBrowser控件里的脚本
举报原因:
原因补充:

(最多只允许输入30个字)