CEF APIを使用して既存のオブジェクト参照を取得することは可能ですか?
たとえば、次を使用してスクリプトを実行しますExecuteJavaScript()
function foo()
{
var self = this;
self.value="some value";
}
var fooObj = new foo;
このスクリプトは、新しい変数を作成しますfooObj
。後でC++コードでこの変数への参照を取得し、その値を変更することは可能ですか?
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」として明示的に参照する必要がある場合があります。その場合、「window」の値を取得してから「fooObj」を取得する必要があります。
(編集 - 誤って投稿するのが早すぎた) (編集 2 - その他)