在cefsharp63.02版本下注册绑定事件需要在绑定事件之前申明这段代码。否则不能绑定、报错;
CefSharpSettings.LegacyJavascriptBindingEnabled = true
C#代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
using System.IO;
namespace cefSharp
{
public partial class Form1 : Form
{
ChromiumWebBrowser browser;
public Form1()
{
InitializeComponent();
browser = new ChromiumWebBrowser(@"C:\Users\Administrator\Desktop\cefSharp\cefSharp\test.html");
browser.Dock = DockStyle.Fill;
panel1.Controls.Add(browser);
CefSharpSettings.LegacyJavascriptBindingEnabled = true;//新cefsharp绑定需要优先申明
browser.RegisterJsObject("boud", new JsEvent(),new CefSharp.BindingOptions() { CamelCaseJavascriptNames = false } );//这个地方相当于注册了一个BO(浏览器对象,和window对象是平级的)
}
private void button1_Click(object sender, EventArgs e)
{
browser.ExecuteScriptAsync("oce_one()");//调用js
}
}
public class JsEvent
{
public string MessageText { get; set; }
public void ShowTest()
{
MessageBox.Show("this in c#.\n\r" + MessageText);
}
public void ShowTestArg(string ss)
{
MessageBox.Show("收到Js参数的调用\n\r"+ss);
}
}
}
JavaScript代码
function oce_one(){
return "aaa";
}
bund.ShowTest();