在构建完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();