我想从嵌入式IE activeX切换到libcef框架。我的web项目的javascript调用C ++函数使用window.external.xxx方法。但我无法在cef框架中获得window.external对象。我尝试在窗口对象中绑定我的c ++函数。可悲的是,它对我不起作用。
我将用于将c ++函数绑定到window对象的代码是这样的:
CefRefPtr<CefV8Value> ptrGlobalObj = context->GetGlobal();
CefRefPtr<CefV8Value> jsCallOrthoLink = CefV8Value::CreateFunction(_T("CallOrthoLink"), m_ptrV8Handler);
ptrGlobalObj->SetValue(_T("CallOrthoLink"), jsCallOrthoLink, V8_PROPERTY_ATTRIBUTE_NONE);
我在javascript中使用window.xxx方法测试它。有用。所以我知道我的绑定代码是正确的。
如何使用window.external.xxxx方法解决此问题?
答案 0 :(得分:2)
试试这个:
external = CefV8Value::CreateObject(NULL, NULL)
external->SetValue("CallOrthoLink", jsCallOrthoLink, V8_PROPERTY_ATTRIBUTE_NONE)
global->SetValue("external", external, V8_PROPERTY_ATTRIBUTE_NONE)