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
  • asp之家 软件编程 m.aspxhome.com