2

是否可以使用 CEF API 获取现有对象引用?

例如我运行一个脚本使用ExecuteJavaScript()

function foo()
{
    var self = this;
    self.value="some value";
}
var fooObj = new foo;

此脚本创建一个新变量fooObj。以后可以在 C++ 代码中获取对这个变量的引用并修改它的值吗?

4

1 回答 1

4

您应该能够通过执行以下操作(未经测试)来获得它:

    auto context = AppGetBrowser()->GetMainFrame()->GetV8Context();
    CefRefPtr<CefV8Value> p = context->GetGlobal()->GetValue(CefString("fooObj"));

您可能需要进入/退出上下文,具体取决于您在 C++ 中从何处调用它。此外,您可能需要实际将对象显式引用为“window.fooObj”,在这种情况下,您必须获取“window”的值,然后从中获取“fooObj”。

(编辑 - 不小心过早发布)(编辑 2 - 更多)

于 2013-02-11T21:08:18.273 回答