在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控件嵌入网页

WPF制作控件闪烁(报警)效果!

WPF界面添加WinForm的Webbrowser控件

1.添加引用: WindowsFormsIntegration.dll System.Windows.Forms.dll 2.页面代码:

WinForm webbrowser控件的使用

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

关于MFC项目中使用WebBrowser控件禁止脚本错误的方法

最近一个项目中要在对话框上使用WebBrowser控件进行页面浏览,但在开发过程中发现WebBrowser控件会在浏览一些页面的时候出现JavaScript脚本错误,严重影响用户体验,而在IE和其他第...
  • cnfixit
  • cnfixit
  • 2011年09月16日 05:16
  • 8465

PB调用WEBBROWSER控件进行网页操作

由于在维护一套B/S程序,程序在和其他系统进行交互时由于环境问题造成系统在派单至另外系统时派单不成功或者是其他系统在处理完后回单至本系统时回单消息丢失,以及在CRM系统派单至本系统后,定单流程无法正常...

VBA学习之WEBBROWSER控件

  • 2013年02月01日 15:52
  • 28KB
  • 下载

MFC调用WebBrowser控件直接编写javascript代码及其他WebBrowser相关技巧

在mfc操作网页的过程中,使用ActiveX控件

利用WebBrowser控件只读访问文档

  • 2014年07月29日 15:51
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在winform里怎么调用WebBrowser控件里的脚本
举报原因:
原因补充:

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