侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

cefsharp实现javascript回调C#方法

2024-05-08 星期三 / 0 评论 / 0 点赞 / 70 阅读 / 1450 字

在构建完ChromiumWebBrowser webView = new ChromiumWebBrowser(url)后,即可调用RegisterJsObject方法来注册一个js对象,从而前端的j

在构建完ChromiumWebBrowser webView = new ChromiumWebBrowser(url)后,即可调用RegisterJsObject方法来注册一个js对象,从而前端的javascript就可以访问这个对象,调用定义的方法。

public class CallbackObjectForJs{    public void showMessage(string msg){        MessageBox.Show(msg);    }}ChromiumWebBrowser webView = new ChromiumWebBrowser("http://localhost:8080");webView.RegisterJsObject("callbackObj", new CallbackObjectForJs());

前端页面javascript代码即可访问对象 callbackObj。

<script type="text/javascript">    callbackObj.showMessage('Hello world...');</script >

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


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

public class JsEvent{public string MessageText = string.Empty;public void ShowTest(){MessageBox.Show("this in C#./n/r" + MessageText);}}wb.RegisterJsObject("jsObj", new JsEvent(), false);

js调用注册的c#对象

jsObj.MessageText = "hello";jsObj.ShowTest();

 

广告 广告

评论区