第一個坑:
必須在初始化的時候加上這句,注意:值是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