第一个坑:
必须在初始化的时候加上这句,注意:值是false,false,false(重要的事情说3遍),意思是不支持旧版绑定模式。
CefSharpSettings.LegacyJavascriptBindingEnabled = false;
第二个坑:
在HTML页面上必须加上这句,其中 bound 是在C#代码里注册对应的name参数。
CefSharp.BindObjectAsync('bound').then(function (result) {
bound.SetAutoResetEvent('ID','text');
});
网页调用C#完整的步骤:
第一步:
初始化时加上这句:
CefSharpSettings.LegacyJavascriptBindingEnabled = false;
第二步:
创建调用对象:
public class CallClass
{
public CallClass()
{
}
public void SetAutoResetEvent(string id,object objResult)
{
}
}
注册对象
CallClass cc=new CallClass();
browser.JavascriptObjectRepository.Register("bound", cc, false);
第三步:
在HTML添加:
CefSharp.BindObjectAsync('bound');
第四步:
在HTML的JS中调用:
bound.SetAutoResetEvent('ID String','ResultString');
C#调用网页完整实例:
var strJs = @"
(function(){
try{
alert("执行成功");
}catch(e){
alert("error:"+e.description);
}
return true;
})();
";
var bResult=browser.EvaluateScriptAsync(strJs).Result.Result;
执行完毕后bResult=true
来源:oschina
链接:https://my.oschina.net/u/4347380/blog/4291513