c#和javascript函数相互调用示例分享
时间:2023-10-08 21:33:52
在设置过webBrowser控件的ObjectForScripting属性后,还需要设置应用程序对com可见,不然会抛出一个异常(ObjectForScripting 的类必须对 COM 可见。请确认该对象是公共的,或考虑向您的类添加 ComVisible 属性。),可做如下设置:
[System.Runtime.InteropServices.ComVisible(true)]
例如:
[ComVisible(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
webBrowser1.ObjectForScripting = this;
webBrowser1.Navigate("https://www.jb51.net");
base.OnLoad(e);
}
}
如果要和JS通讯,使用webBrowser的Document对象的InvokeScript方法即可。
该方法签名如下:
InvokeScript(String spriteName,object[] args);
例如:
<scripttype="text/javascript"> //提供给c#调用的方法
function test(n,s){
alert(n+"/"+s);
} //调用C#的方法
function callCSharp(){ //这里可以看到window.external被设置成了什么
alert(window.external);
window.external.Test("hello",15);
}
</script>
<button onclick="callCSharp()">call c#</button>
调用:web.Document.InvokeScript("test", new Object[] {1,"hello"});
标签:函数相互调用
0
投稿
猜你喜欢
Android自定义水波纹底部导航的实现
2022-08-23 13:12:35
详解WPF如何使用必应地图控件
2021-07-29 19:01:27
java1.8安装及环境变量配置教程
2023-04-29 10:36:49
Mybatis-Plus的SQL语句组拼原理说明
2021-07-03 20:39:22
C++实现扫雷小游戏
2022-07-27 22:59:39
Android编程实现ActionBar的home图标动画切换效果
2021-11-21 11:34:11
C#学习笔记- 浅谈数组复制,排序,取段,元组
2021-10-21 00:50:58
Android应用中加入微信分享简单方法
2022-06-05 00:17:27
IDEA下Maven的pom文件导入依赖出现Auto build completed with errors的问题
2023-04-06 07:23:31
详解c# 委托链
2021-10-06 23:17:59
Spring Cloud Eureka(全面解析) 大白话
2022-11-12 22:43:02
C#多线程Thread使用示例详解
2021-11-12 06:52:05
jar包运行时提示jar中没有主清单属性的解决
2023-11-23 19:04:10
Spring如何基于注解配置使用ehcache
2022-08-16 03:24:32
Android 5秒学会使用手势解锁功能
2023-07-11 13:48:32
深入理解JAVA基础类库中对象Object类
2023-07-26 12:24:10
C#影院售票系统毕业设计(4)
2023-03-27 17:45:29
C#基础知识之GetType与typeof的区别小结
2022-04-06 21:59:34
springboot接收别人上传的本地视频实例代码
2023-03-22 01:55:39
android手机获取gps和基站的经纬度地址实现代码
2022-04-05 03:03:00