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();

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • springmvc和mybatis面试题(含答案)

    springmvc和mybatis面试题(含答案)SpringMVCFramework有这样一些特点:1。它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件.并且和Spring提供的其他基础结构紧密集成.2。不依赖于ServletAPI(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)3。可以任意使用各种视图技术,而不仅仅局限于JSP4。支持各种请求资源的映射策略5。它应是易于扩展的2

  • arpspoof命令详解_什么的命令

    arpspoof命令详解_什么的命令ARPSpoofVer3.1bbyCoolDiyerUsage:ArpSpoof<IP1><IP2><PORT><AdpNum><Mode>/[r|s]<File>ArpSpoof/s<IP><Mask>ArpSpoof/lModeOptions:0IP1–>IP21IP1<->IP2Examples:>A

  • Eureka集群原理

    Eureka集群原理问题:微服务RPC远程服务调用最核心的是什么?高可用,试想你的注册中心只有一个onlyone,它出故障了那就呵呵o( ̄︶ ̄)o了,会导致整个微服务环境不可用。解决办法:搭建Eureka注册中心集群,实现负载均衡+故障容错Eureka集群的原理:互相注册,相互守望。一个Eureka集群包含7001和7002等许多服务,在这个集群中,7001指向其他所有服务…

  • BM3D算法相关笔记

    BM3D算法相关笔记三维矩阵主要原因就在于,三维矩阵中,第一维度代表行,第二维度代表列,第三维度代表页,当第三维度为1时,代表只有1页,自然缩减为二维。当第一维度为1时,代表只有一行,但是每页都有,所以,从物理的角度没有缩减为二维。http://blog.sina.com.cn/s/blog_7519cf530101ahsb.html

  • 浅谈 MVC与三层架构

    浅谈 MVC与三层架构引言:使用Eclipse开发工具写JavaWeb项目时会发现,一个中型或者大型项目随着代码的增多,会发现:代码既可以写在src目录下,也可以写在WebContent目录下。src下可以建很多包,WebContent下可以建很多文件夹。所以问题就来了:一个新的类到底往哪个目录下的哪个文件夹里写?此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。…

  • PHP进销存erp源码库存管理系统

    PHP进销存erp源码库存管理系统PHP进销存erp源码库存管理系统(2次开发另外收费)本系统开发PHP+MySQL采用CI2.x框架本系统运行环境php5.3+mysql5.5支持IIS、apache不支持nginx源码网站:www.phprr.com演示地址:http://www.phprr.com/show-55账号:admin密码:jxc888888…

发表回复

您的电子邮箱地址不会被公开。

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