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


相关推荐

  • CentOS 7 修改IP地址

    网卡的命名规则CENTOS6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变化。CENTOS7采用dmidecode采集命名方案,以此来得到主板信息;它可以实现网卡名字永久唯一化。(dmidecode这个命令可以采集有关硬件方面的信息)对网络设备的命名方式:1)如果Firmware(固件)或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如:ifcfg-e

    2022年4月7日
    299
  • python 字符串按行切割

    python 字符串按行切割strs=xxxxxs.split(‘\n’)if__name__==’__main__’:response=requests.get(“https://video.buycar5.cn/20200809/Vqdbr9lj/2000kb/hls/index.m3u8”)split=response.text.split(‘\n’)print(split)

    2022年6月18日
    33
  • RewriteRule指令[通俗易懂]

    RewriteRule指令[通俗易懂]作为RewriteRule指令的第三个参数。Flags是一个包含以逗号分隔的下列标记的列表: ‘last|L'(最后一个规则last)立即停止重写操作,并不再应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。这个标记可以阻止当前已被重写的URL为其后继的规则所重写。举例,使用它可以重写根路径的URL(‘/’)为实际存在的URL,比如,’/e/w

    2022年5月14日
    35
  • android倒计时功能的实现(CountDownTimer)[通俗易懂]

    android倒计时功能的实现(CountDownTimer)[通俗易懂]在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间。将后台线程的创建和Handler队列封装成一个方便的类调用。    查看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。         下面是官方给的一个小例子:ne

    2022年9月18日
    2
  • pandas drop参数_pandas concat函数

    pandas drop参数_pandas concat函数pandas中dropna()参数详解DataFrame.dropna(axis=0,how=‘any’,thresh=None,subset=None,inplace=False)1.axis参数确定是否删除包含缺失值的行或列axis=0或axis=’index’删除含有缺失值的行,axis=1或axis=’columns’删除含有缺失值的列,importpandasaspdimportnumpyasnpdf=pd.DataFrame({“name”:[‘Alfr

    2022年9月18日
    2
  • 源码网_python 源代码

    源码网_python 源代码源码结构目录可以看到此模块定义了4个属性和12个函数,我们依次来讲解属性源码分析#匹配http://或https://absolute_http_url_regexp=re.compil

    2022年7月29日
    5

发表回复

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

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