Я новичок в общении с браузером cefsharp, и у меня есть браузер, который загружает мой пользовательский html js и richtextbox.
Мне нужно общаться между ними, когда кто-то вводит что-то в richtextbox, он автоматически отправляет это в качестве переменной в браузер, где мой пользовательский js получит его, и аналогично, если кто-то вводит что-то в мой браузер, функция js отправит ее в c# как переменную, которая обновит richtextbox.
Отправка переменной из js в c# работает с использованием RegisterAsyncJSObject но когда вышеперечисленное работает и обновляет мой richtextbox, и я что-то ввожу в richtextbox, то ExecuteScriptAsyn c не работает, но если я удаляю все, что RegisterAsyncJSObject обновилось в richtextbox и введите что-нибудь в richtextbox, затем ExecuteScriptAsyn c работает
Вот код
Создание объекта AsyncJSObject:
mw = ((MainWindow)System.Windows.Application.Current.MainWindow);
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
MainWindowBrowser.RegisterAsyncJsObject("getTEXTfromjs", mw);
JS Код
getHTMLfromjs.updateonDrag(result);
Код объекта AsycnJSO, который обновляет richtextbox:
public void updateonBrowserEnter(String rtbHolder) {
this.Dispatcher.Invoke(() => {
richtextbox.Text = rtbHolder;
});
}
ExecuteScriptAsyn c Код в Richtextbox TextChanged:
String rtbh = richtextbox.Text;
MainWindowBrowser.ExecuteScriptAsync(String.Format("testFunc('{0}');", rtbh));