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)


相关推荐

  • 第二十九课.回声状态网络ESN[通俗易懂]

    第二十九课.回声状态网络ESN[通俗易懂]目录EchoStateNetworkEchoStateNetwork回声状态网络(EchoStateNetwork)又称为库计算,即ReservoirComputing,被视为是一种神经网络的扩展。ReservoirComputing多用于处理时间序列的预测问题,比如下图:给定一个信号序列:u(0),u(1),…,u(Nt−1)\textbf{u}(0),\textbf{u}(1),…,\textbf{u}(N_{t}-1)u(0),u(1),…,u(Nt​−1)给定

  • java官网下载「建议收藏」

    java官网下载「建议收藏」安装版http://javadl.oracle.com/webapps/download/AutoDL?BundleId=234471_96a7b8442fe848ef90c96a2fad6ed6d1win64http://javadl.oracle.com/webapps/download/AutoDL?BundleId=234474_96a7b8442fe848ef90c96a2f…

  • 数据库原理课程设计—停车场管理系统

    数据库原理课程设计—停车场管理系统数据库原理课程设计—停车场管理系统停车场收费管理系统是现代化停车场车辆收费及设备自动化管理的一个统称,是将停车场完全置于计算机统一管理下的高科技机电一体化产品。人们对停车场管理的要求越来越高,智能化程度越来越高,使用更加方便快捷。不仅提高了现代人类的工作效率,也大大的节约了人力物力,价低了公司的运营成本。它通过只能设备使感应卡记录及持卡人进出的相关信息,同时对其信息加以运算、传送并通过字符显示、语音播报等人机界面转化成人工能够辨别和判断的信号,从而实现计时收费、车辆管理等目的。针对用户的不同需求,

  • 移动终端处理器构成和基带芯片概述「建议收藏」

    移动终端处理器构成和基带芯片概述

  • 微信开放平台认证后怎么实现扫码登录功能[通俗易懂]

    微信开放平台认证后怎么实现扫码登录功能[通俗易懂]主题:微信开放平台认证后怎么实现扫码登录功能在面对这些问题时,同时也是很多刚入手做开发朋友疑惑的希望能帮你们快速完成微信登录配置。以我多天的日夜辛苦测试和实践,同时也是我自己在开发过程中遇到的问题被我不断尝试,一遍又一遍的填写参数,建站平台换几十个,最总发现了这些问题所在给大家总结了以下几点问题和解决方案:1.认证微信开放平台和微信公众平台认证有区别吗?如果只用来作微信登录和使用微信支付,那么告诉你:没有区别,同样是三百块钱认证费用(你只注意一下你的开发资料能一次性通过就行)2.同样能实

  • navicat 15 激活码【注册码】

    navicat 15 激活码【注册码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

发表回复

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

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