CefSharp 与 js 相互调用「建议收藏」

CefSharp 与 js 相互调用「建议收藏」CefSharp与js相互调用一.CefSharp调用jsCefSharp.WinForms.ChromiumWebBrowserwb;…方式1.ExecuteScriptAsync方法使用方式与js的eval方法一样,异步执行,无返回值。//xxx为js的方法名称wb.ExecuteScriptAsync(“xx

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
CefSharp 与 js 相互调用


一. CefSharp调用 js

CefSharp.WinForms.ChromiumWebBrowser wb;


方式1. ExecuteScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,无返回值。

// xxx为js的方法名称

wb.ExecuteScriptAsync(“xxx()”); 

// 为 js 的 变量jsVar赋值 ‘abc’

wb.ExecuteScriptAsync(“jsVar=’abc'”); 


方式2. EvaluateScriptAsync 方法使用方式与 js 的 eval方法一样,异步执行,有返回值。

Task<CefSharp.JavascriptResponse> t = wb.EvaluateScriptAsync(“callTest2()”);
// 等待js 方法执行完后,获取返回值

t.Wait();

// t.Result 是 CefSharp.JavascriptResponse 对象

// t.Result.Result 是一个 object 对象,来自js的 callTest2() 方法的返回值

if(t.Result.Result != null)

{

   MessageBox.Show(t.Result.Result.ToString());

}


二. js 调用 CefSharp的对象

1. 将c#对象注册为 js对象

public class JsEvent

{    

    public string MessageText = string.Empty;

    public void ShowTest()

    {

        MessageBox.Show(“this in C#.\n\r” + MessageText);

    }

}



CefSharp.WinForms.ChromiumWebBrowser wb;

// CefSharp 默认的 RegisterJsObject(没有 camelCaseJavascriptNames 参数),只认小写字母开始的属性、方法名称。

// 使用带 camelCaseJavascriptNames
参数的 RegisterJsObject,传入 false,就能识别大写字母开始的属性、方法名称了。

wb.RegisterJsObject(“jsObj”, new JsEvent(), false);

2. js调用注册的c#对象

jsObj.MessageText = “hello”;

jsObj.ShowTest();

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191745.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月26日 上午10:15
下一篇 2026年1月26日 上午10:43


相关推荐

  • 我的电磁学讲义14:动生电动势和感生电动势

    我的电磁学讲义14:动生电动势和感生电动势电动势正如维持一个喷泉需要水泵 维持电路回路需要 电 泵 电源 图 1 持续喷泉需要水泵在电源内部 正电荷从低电势区走向高电势区 即逆着电场的方向运动 因此需要补充额外的能量 使正电荷克服电场力做功 给载流子补充的能源 可能来自化学能 如电池 可能来自机械能 如水电站 可能来自太阳 如太阳能电池 可能来自温度差 如热电堆 图 2 电回路维持电流需要电动势下面我们从功能转换的角度分析一下

    2026年3月20日
    2
  • JLink、STLink、DAPLink、CMSIS DAP使用区别

    JLink、STLink、DAPLink、CMSIS DAP使用区别先上张全家福 都是工作时大家常用的几款下载器 手边就这几个 另还有几个打冷宫里了 挨个给大家说说作参考 不讲参数 整那虚的没卵用 实际的使用感受更实际 J Link 大名鼎鼎 各种版本 各种款式 号称支持芯片量最多 优点 快 稳 常用的几种下载器 实测 JLink 最快 STM32F407 芯片 109K 代码实测 8 秒搞掂烧录 缺点 最贵 大多数 JLink 不支持 STM8 听说 STM8

    2026年3月16日
    2
  • IDEA这些既好用又好玩的三十多个宝贝插件你还不知道吗?「建议收藏」

    小编整理的一些好用的有趣的插件如果有什么问题,欢迎大家评论,群文件也有这些IDEA插件QQ交流群:99979568IDEA下载插件教程如果无法在线下载插件,文末有我下载好的安装包,以及安装包安装的教程强烈推荐的插件PresentationAssistant快捷键展示Codota代码智能提示AlibabaJavaCodeGuidelines—阿里巴巴Java代码规范Translation-必备的翻译插件SequenceDiagra.

    2022年4月8日
    49
  • 未初始化数组的默认初始值

    未初始化数组的默认初始值在日常编程编写过程中 有时会 new 一个数组对象 但是在未赋值的情况下 不同类型的数组 默认初始值也是不同的 如下所示 char ch newchar 3 默认空格 int Int newint 2 默认 0String strings newString 2 默认 nullBytex 默认 null

    2026年3月26日
    3
  • numba使用心得

    numba使用心得最近写作业时 发现 numpy 实在太慢了 然后发现了对 numpy 进行加速的几种方法 pypy 适合原生 python 书写的程序 对第三方库不是很友好 cython 需要换用非原生语言编写 比较麻烦 numba 对 numpy 等数值运算的加速有奇效 numba 基础 numba 基础 Jit 加速原生代码 Tipsjit 的加速有两种模式 lazy 模式和 eager 模式 lazy 模

    2026年3月16日
    3
  • Linux面试题(2020最新版)[通俗易懂]

    Linux面试题(2020最新版)[通俗易懂]文章目录Linux概述什么是LinuxUnix和Linux有什么区别?什么是Linux内核?Linux的基本组件是什么?Linux的体系结构BASH和DOS之间的基本区别是什么?Linux开机启动过程?Linux系统缺省的运行级别?Linux使用的进程间通信方式?Linux有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什…

    2022年4月27日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号