使用WebBrowser控件与网页通信,互相调用
2014-06-08 23:11
309 查看
转自:使用WebBrowser控件与网页通信,互相调用
本例程序运行效果图如下所示:
WebBrowser控件之所有强大,一方面是由于控件本身提从了一系列的方法,包括打开网页,获取网页信息,操作网页(如前进后通等),拦截网页事件,另一方面则是提供了与网页相调用的机制。即以下2点:
1:让HTML页面的js调用我们在WebBrowser控件外面编写的函数。
2:让我们可以调用网页中的Javascript代码
如果能够让网页里的Javascript与我们用C#编写的函数互相调用,则理论上,以后的界面都可以交给Webbrowser来处理。这样就解决了一直以来,困扰我们的问题:弱客户端与胖客户端的问题。众所周知,网页程序的优势在于界面开发容易,几行HTML就可以做出惊人的效果,而且更新方便。只需要在服务器端更新,则所有用户都可以立即用上最新的版本。但网页程序由于运行在浏览器里,所以网页不能实现本地计算(其实Javascript也是本地计算,只是效率太低),不能访问本地资源。比如本地文件系统,直接查看网络设备,直接与素统交互,这导致了网页功能的局限性。通过将2者结合,各自做自己擅长的工作,就能解决这一矛盾。Webbrowser控件就是这解这一问题的桥梁。
Javascript与C#两种不同的语言互相调用与通信,依靠的是与语言无关的COM技术(WebBrowser使用了这一技术,实现了相关接口,打通了这2者的桥梁)。所以,我们需要让我们的C#代码类成为一个COM类,只需要在类前面定义一个ComVisibleAttribute属性即可,如下所示:
在我们的C#类变成一个COM类以后,我们还要告诉WebBrowser,让这个类做为Javascript调用的入口类,即指定ObjectForScripting 属性,代码如下所示
关于ObjectForScripting,更详细的信息可以参考这里:http://msdn2.microsoft.com/en-us/library/system.windows.forms.webbrowser.objectforscripting.aspx
做了这些准备工作以后,就可以直接使用WebBrowser控件的Document属性的InvokeScript方法来执行Html中的Javascript代码了。
本例使用到的Javascript代码为:
本例程序运行效果图如下所示:
WebBrowser控件之所有强大,一方面是由于控件本身提从了一系列的方法,包括打开网页,获取网页信息,操作网页(如前进后通等),拦截网页事件,另一方面则是提供了与网页相调用的机制。即以下2点:
1:让HTML页面的js调用我们在WebBrowser控件外面编写的函数。
2:让我们可以调用网页中的Javascript代码
如果能够让网页里的Javascript与我们用C#编写的函数互相调用,则理论上,以后的界面都可以交给Webbrowser来处理。这样就解决了一直以来,困扰我们的问题:弱客户端与胖客户端的问题。众所周知,网页程序的优势在于界面开发容易,几行HTML就可以做出惊人的效果,而且更新方便。只需要在服务器端更新,则所有用户都可以立即用上最新的版本。但网页程序由于运行在浏览器里,所以网页不能实现本地计算(其实Javascript也是本地计算,只是效率太低),不能访问本地资源。比如本地文件系统,直接查看网络设备,直接与素统交互,这导致了网页功能的局限性。通过将2者结合,各自做自己擅长的工作,就能解决这一矛盾。Webbrowser控件就是这解这一问题的桥梁。
Javascript与C#两种不同的语言互相调用与通信,依靠的是与语言无关的COM技术(WebBrowser使用了这一技术,实现了相关接口,打通了这2者的桥梁)。所以,我们需要让我们的C#代码类成为一个COM类,只需要在类前面定义一个ComVisibleAttribute属性即可,如下所示:
做了这些准备工作以后,就可以直接使用WebBrowser控件的Document属性的InvokeScript方法来执行Html中的Javascript代码了。
本例使用到的Javascript代码为:
相关文章推荐
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 【Qt】使用WebBrowser并调用网页中的JS函数
- 使用WebBrowser并调用网页中的JS函数
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 1.C#开发winform 开发调运检疫离线制证功能。调用cLodop打印控件(NVelocity模块,生成HTML(包含cLodop打印控件的js),使用WebBrowser,展现网页)总结
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- webbrowser控件 调用javascript函数的使用一例,环境c#+html (改进)
- 窗体调用kindeditor,使用WebBrowser控件、把Kindeditor烦在bin/DeBug目录中
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 使用WebBrowser控件获取网页源码的方法
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 使用WebBrowser控件播放Flash网页相关问题解决方法
- 强制IE浏览器或WebBrowser控件使用指定版本显示网页
- 在WebBrowser控件使用js调用C#方法
- 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容
- 获取iframe中的内容、查找获取指定元素(关于用c++调用WEBBROWSER控件,使用相关接口操作web页面元素的一些方法)
- delphi强制WebBrowser控件使用指定版本显示网页