[Winform-WebBrowser]-在html页面中js调用winForm类方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[Winform-WebBrowser]-在html页面中js调用winForm类方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1780字,纯文字阅读大概需要3分钟。
内容图文
在winform项目中嵌入了网页,想通过html页面调用后台方法,如何实现呢?其实很简单,主要有三部:
1、在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类可以com组件的形式供外包调用
2、在webBrowser控件中设置可被html页面调用的类即:webBrowser1.ObjectForScripting = this;前端即可通过window.external访问this对象
3、html页面调用后台方法:window.external.方法名(); 此处的window.external相当于webBrowser1.ObjectForScripting
1 // ComVisible 设置对外的可访问性,在html中可使用 js 访问成员方法 2 [ComVisible(true)] 3publicpartialclass Form1 : Form 4 { 5public Form1() 6 { 7 InitializeComponent(); 8 } 910privatevoid Form1_Load(object sender, EventArgs e) 11 { 12//browser.Url = new Uri("https://www.baidu.com");13 browser.Url = new Uri("http://localhost:3133/index.html"); 14 browser.ObjectForScripting = this; 15 } 1617privatevoid btnSearch_Click(object sender, EventArgs e) 18 { 19 HtmlElement kw = browser.Document.All["kw"]; 20 HtmlElement btn = browser.Document.All["su"]; 2122string txt = txtwd.Text.Trim(); 23 kw.SetAttribute("value", txt); 24 btn.InvokeMember("click"); 25 } 2627privatevoid btnDo_Click(object sender, EventArgs e) 28 { 29int[] arr = { 1, 23 }; 30 browser.Document.InvokeScript("f",newobject[] { "{1,2,3}" }); 31 } 3233publicvoid WinF(string arg) 34 { 35 MessageBox.Show(arg); 36 } 37 }
html 代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <meta charset="utf-8" /> </head> <body> <h1>Hello World!</h1> <button onclick="ext()">external</button> <script> var f = function (msg) { //if() alert(Object.prototype.toString.call(msg)); } //调用winform 中的方法 function ext() { //调用winform 中的方法 window.external.WinF("hello"); } </script> </body> </html>
原文:https://www.cnblogs.com/yougmi/p/8656281.html
内容总结
以上是互联网集市为您收集整理的[Winform-WebBrowser]-在html页面中js调用winForm类方法全部内容,希望文章能够帮你解决[Winform-WebBrowser]-在html页面中js调用winForm类方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。