是否可以使用CEF API获取现有对象引用?
例如,我使用ExecuteJavaScript()
function foo()
{
var self = this;
self.value="some value";
}
var fooObj = new foo;
此脚本会创建一个新变量fooObj
。以后可以在C ++代码中获取对该变量的引用并修改其值吗?
答案 0 :(得分:4)
您应该能够通过执行以下操作(未经测试)来获取它:
auto context = AppGetBrowser()->GetMainFrame()->GetV8Context();
CefRefPtr<CefV8Value> p = context->GetGlobal()->GetValue(CefString("fooObj"));
您可能需要输入/退出上下文,具体取决于您在C ++中调用它的位置。此外,您可能需要将您的对象显式引用为'window.fooObj',在这种情况下,您必须获取'window'的值,然后将'fooObj'关闭。
(编辑 - 意外发布太早) (编辑2 - 更多)