Можно ли получить ссылку на существующий объект с помощью CEF API?
Например, я запускаю скрипт, используя ExecuteJavaScript()
function foo()
{
var self = this;
self.value="some value";
}
var fooObj = new foo;
Этот скрипт создает новую переменную fooObj
, Возможно ли получить ссылку на эту переменную позже в коде C ++ и изменить ее значение?
Вы должны быть в состоянии получить это, выполнив что-то вроде следующего (непроверенного):
auto context = AppGetBrowser()->GetMainFrame()->GetV8Context();
CefRefPtr<CefV8Value> p = context->GetGlobal()->GetValue(CefString("fooObj"));
Вам может понадобиться войти / выйти из контекста в зависимости от того, откуда вы вызываете его в C ++. Более того, вам может понадобиться явно ссылаться на ваш объект как «window.fooObj», и в этом случае вам придется получить значение для «окна», а затем извлечь из него «fooObj».
(редактировать — случайно отправлено слишком рано)
(редактировать 2 — больше)
Других решений пока нет …