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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • treetable php,jQuery树型表格插件jQuery treetable

    treetable php,jQuery树型表格插件jQuery treetable插件描述:jQuery-treetable是一个jQuery插件。有了这个插件,你可以在一个HTML表格中显示树,即目录结构或嵌套列表。它使你的HTML文件干净的,展现出树状表格插件,你只需要每一行数据添加特定的数据属性。jQuery-treetable有了这个插件,你可以在一个HTML表格中显示树,即目录结构或嵌套列表。它使你的HTML文件干净的,展现出树状表格插件,你只需要每一行数据添加特定的…

    2022年5月2日
    78
  • 工厂+策略解决多重if-else

    工厂+策略解决多重if-else

    2021年7月11日
    92
  • HTML转word_怎么把docx转换成word

    HTML转word_怎么把docx转换成word在做项目时,要将富文本编辑器,或是html内容导出为word。先引入文件保存js<scriptsrc=”FileSaver.js”></script>导出为Docxdocx体积更小,而且word2007也可以打开1.引用插件html-docx.js<scriptsrc=”html-docx.js”></script>2.构建完整的html内容文档varcontent='<!DOCTYPEhtml&gt

    2022年10月12日
    0
  • 解决:java.lang.AbstractMethodError: null

    解决:java.lang.AbstractMethodError: nullspringboot2.x整合sqlserver使用jtds连接池连数据库的时候出现异常2017-02-1512:12:23.955WARN14844—[main]ationConfigEmbeddedWebApplicationContext:Exceptionencounteredduringcontextinitializ…

    2022年6月2日
    369
  • 函数c()_函数的调用

    函数c()_函数的调用__builtin_系列函数

    2022年10月30日
    0
  • 负载均衡之一致性哈希算法

    说到负载均衡的hash算法,自然会联想起如下这样的算法hash(object)%nodeTotal而在集群中,机器的动态上下线是常见的情况,如果集群是无状态的,那么上述的算法没有问题.但是如果是缓存之类的集群,节点的动态上下线会导致几乎所有的key的重新映射,这样造成的影响是数据错乱,相同备份的数据同时存在于集群中的多个节点,造成内存空间的浪费为了解决上述的问题,一致性哈希算法就被…

    2022年4月14日
    47

发表回复

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

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