Как получить результат от выполнения JavaScript во встроенном элементе управления Chromium?

Как я могу выполнить JavaScript и получить его результат в DCEF3? Буду признателен, если кто-нибудь сможет написать простой пример того, как это можно сделать.

Я могу выполнить JavaScript с кодом ниже, но он не дает результата.

Browser.MainFrame.ExecuteJavaScript('app.doit(''foo'')', '', 0);

2 ответа

Вот мой метод работы: используйте команду 'console.log()'. Идея состоит в том, чтобы запустить нужный код JS и записать результат на консоль; после этого вы можете перехватить консольное сообщение и получить результат.

Пример:

var a = 1; 
var b = 2;
var result = a + b;
console.log(result);
return result;

Это не идеал, но работал для меня.

Из вики реализации Python:

Эта функция выполняется асинхронно, поэтому нет способа получить возвращаемое значение. Вызов javascript из собственного кода синхронно невозможен в CEF 3. Также невозможно сделать это синхронно наоборот, т.е. js-> родной.

Другие вопросы по тегам