上代码
js调用C#
C#代码
private void TestForm_Load(object sender1, EventArgs e1)
{
browser = new ChromiumWebBrowser();
browser.JavascriptObjectRepository.ResolveObject += (object sender, JavascriptBindingEventArgs e) =>
{
var repo = e.ObjectRepository;
if (e.ObjectName == "boundAsync")
{
BindingOptions bindingOptions = null;
bindingOptions = BindingOptions.DefaultBinder;
repo.NameConverter = null;
repo.NameConverter = new CamelCaseJavascriptNameConverter();
repo.Register("boundAsync", new BoundObject(), isAsync: true, options: bindingOptions);
}
};
panel1.Controls.Add(browser);
browser.Load("file:///C:/Users/admin/Desktop/test.html");
}
C#绑定对象
public class BoundObject
{
public string receiveMsg(string url)
{
return "ok";
}
}
js代码
<html>
<body>
<INPUT onclick="submit1()" value="test" type="button">
</body>
<script type="text/javascript">
(async function(){
await CefSharp.BindObjectAsync("boundAsync");
})();
function submit1() {
boundAsync.receiveMsg("https://www.baidu.com").then(
function(res) {
alert(res);
}
)
}
</script>
</html>
C#调用js
C#代码
browser.ExecuteScriptAsync("func1('666')");
js代码
function func1(string x) {
alert(x);
}