1 回答
TA贡献2016条经验 获得超9个赞
您的代码中的问题: 您没有正确注册 Js 对象,这就是您无法在 JS 中获取对象的原因。
准则:
RegisterJsObject 是注册你的c#对象,然后从JS调用这些方法,并将值从JS发送到c#。
如果你想将空字符串从 c# 传递到你的 HTML 页面,那么你应该像下面这样注册 JS 对象:
您的 C# 类应如下所示:
public class AsyncBoundObject
{
//We expect an exception here, so tell VS to ignore
[DebuggerHidden]
public void Error()
{
throw new Exception("This is an exception coming from C#");
}
//We expect an exception here, so tell VS to ignore
[DebuggerHidden]
public int Div(int divident, int divisor)
{
return divident / divisor;
}
}
然后你可以在 CefSharp 实例中注册这个类,如下所示:
browser = new ChromiumWebBrowser();
browser.RegisterAsyncJsObject("boundAsync", new AsyncBoundObject());
注册后,您可以从 JS 调用该方法,如下所示。
function asyncDivOk()
{
var call = "Async call (Divide 16 / 2): " + Date();
window.boundAsync.div(16, 2).then(function (res)
{
var end = "Result: " + res + "(" + Date() + ")";
writeAsyncResult(call, end);
});
}
您可以看到 16 和 2 是正在传递的参数。
希望这可以帮助。
- 1 回答
- 0 关注
- 326 浏览
添加回答
举报