在WebBrowser控件使用js调用C#方法
2017-03-17 14:20
691 查看
有时我们需要在WebBrowser控件中嵌入了网页,然后通过html页面调用后台方法,如何实现呢?其实很简单,主要有三步:
- 在被调用方法所属的类上加上[ComVisible(true)]标签,意思就是当前类可以以com组件的形式供外部调用。
- 在WebBrowser控件中设置可被html页面调用的类即:webBrowser1.ObjectForScripting = this。前端即可通过window.external访问this对象
- html页面调用后台方法:window.external.方法名()。此处的window.external相当于webBrowser1.ObjectForScripting
示例代码:
一、后台
using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace jsInWebBrowserCallCSharpMethod { [ComVisible(true)] //1、必须设置且为true,否则设置webBrowser1.ObjectForScripting对象时会报错 public partial class Form1 : Form { public Form1() { InitializeComponent(); webBrowser1.Url =new Uri( Application.StartupPath + "\\htmls\\test.html"); webBrowser1.ObjectForScripting = this;//2、设置js中window.external对象代表的类 } /// <summary> /// 供webBrowser页面中js调用的方法 /// </summary> /// <param name="msg"></param>
/// <param name="msg2"></param> public void ShowMessage(string msg, string msg2) { MessageBox.Show(msg + "\r\n" + msg2); } } }
二、test.html文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>测试调用winform后台方法页面</title> <script type="text/javascript"> window.onload = function () { var btn = document.getElementById('btnCallCSharpMethod'); btn.onclick = function () { //此处window.external相当于winform中设置的webBrowser.ObjectForScripting对象 window.external.ShowMessage('成功调用winform类中的方法!','成功调用winform类中的方法2!'); } } </script> </head> <body style='text-align:center;'> <input type='button' id='btnCallCSharpMethod' value='调用winform类中的方法' /> </body> </html>
三、运行效果
本文转载自:http://blog.csdn.net/taoerchun/article/details/49782739
相关文章推荐
- WebBrowser控件中JS调用C#方法
- 获取iframe中的内容、查找获取指定元素(关于用c++调用WEBBROWSER控件,使用相关接口操作web页面元素的一些方法)
- js调用.NET服务器控件及C#后台方法
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 使用C#反射实现用户控件调用父页面方法
- c#中WebBrowser控件的使用方法
- C#使用技巧之调用JS脚本方法二
- c#利用委托跨线程调用UI控件完整使用方法
- 浅析c#中WebBrowser控件的使用方法
- NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用
- winform窗体中调用Webbrowser控件里的JS方法和
- Xilium.CefGlue怎么使用Js调用C#方法
- C#使用技巧之调用JS脚本方法一
- 在WebBrowser中通过JS调用C#方法(转)
- WinForm中嵌入WebBrowser,并且支持C#和JS方法的相互调用
- C# winForm webBrowser页面中js调用winForm类方法(转)
- Qt调用Windows Webbrowser控件,调用JS方法
- C#使用技巧之调用JS脚本方法一
- C#使用技巧之调用JS脚本方法二
- .NET中WebBrowser控件内部页面的JS代码与外部C#代码的相互调用