Как получить результат от выполнения 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-> родной.