Проблема в вашем коде: Вы не регистрируете объект Js должным образом, и поэтому вы не можете получить объект в JS.
Рекомендации:
RegisterJsObject предназначен для регистрации вашего объекта c #, а затем вызова этих методов из JS и отправки значений из JS в c #.
Если вы хотите передать пустую строку из c # на свою HTML-страницу, вам следует зарегистрировать объект JS, как показано ниже:
Ваш класс c # должен быть таким, как показано ниже: public class BoundObject {
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.
Надеюсь, это поможет.