如何在cef框架中支持window.external.xxx

时间:2017-02-28 08:05:12

标签: javascript c++11 chromium-embedded

我想从嵌入式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方法解决此问题?

1 个答案:

答案 0 :(得分:2)

试试这个:

external = CefV8Value::CreateObject(NULL, NULL)
external->SetValue("CallOrthoLink", jsCallOrthoLink, V8_PROPERTY_ATTRIBUTE_NONE)
global->SetValue("external", external, V8_PROPERTY_ATTRIBUTE_NONE)