在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.C#里调用控件里面网页的js函数 //调用JavaScript的messageBox方法,并传入参数 object[] objects = new object[1]; objects[0] = “C#访问JavaScript脚本"; this.webBrowser1.Document.InvokeScript(“messageBox", objects);//object就是传入的参数,而messageBox则是网页中预定义好的js函数。 通过这种方式C#里面就可以执行Javascript函数,可以把上面的代码放到一个button的click事件里面。 2.webbrowser控件里网页js调用C#窗体的函数 首先需要在代码里面加上 [System.Runtime.InteropServices.ComVisibleAttribute(true)] public partial class Form1 : Form{ …..// } 这样使得C#的com对象是对网页里的javascript可见的。 然后在嵌入网页里面通过“window.external.MyMessageBox(‘javascript访问C#代码’)" ,即通过window.external捕获调用c#定义好的函数。 具体Form.cs代码如下(通过vs创建的c#window窗体应用,拖拽上一个webbrowser控件和button控件。): [System.Runtime.InteropServices.ComVisibleAttribute(true)] public partial class Form1 : Form { public Form1() { InitializeComponent(); System.IO.FileInfo file = new System.IO.FileInfo("test.html"); this.webBrowser1.Url = new Uri(file.FullName); // WebBrowser控件显示的网页路径 this.webBrowser1.ObjectForScripting =this;// 将当前类设置为可由脚本访问 } //提供给JavaScript调用的方法 public void MyMessageBox(string message) { MessageBox.Show(message); } private void button1_Click_1(object sender, EventArgs e) { //调用JavaScript的messageBox方法,并传入参数 object[] objects = new object[1]; objects[0] = “C#访问JavaScript脚本"; this.webBrowser1.Document.InvokeScript("messageBox", objects); } } test.html内容比较简单: <html> <head> <meta http-equiv="Content-Language" content="zh-cn"> <script language="javascript" type="text/javascript"> <!– 提供给C#程序调用的方法 –> function messageBox(message) { alert(message); } </script> </head> <body> <!– 调用C#方法 –> <button onclick="window.external.MyMessageBox('javascript访问C#代码')" >javascript访问C#代码</button> </body> </html> 配置运行成功的话,可以看到相互调用的效果
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论