如何在 cef 框架中支持 window.external.xxx
How can I support window.external.xxx in cef framework
我想从嵌入式 IE activeX 切换到 libcef 框架。我的 Web 项目的 javascript 调用 C++ 函数使用 window.external.xxx 方法。但是我无法在 cef 框架中获取 window.external 对象。我尝试在 window 对象中绑定我的 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 方法解决此问题?
试试这个:
external = CefV8Value::CreateObject(NULL, NULL)
external->SetValue("CallOrthoLink", jsCallOrthoLink, V8_PROPERTY_ATTRIBUTE_NONE)
global->SetValue("external", external, V8_PROPERTY_ATTRIBUTE_NONE)
我想从嵌入式 IE activeX 切换到 libcef 框架。我的 Web 项目的 javascript 调用 C++ 函数使用 window.external.xxx 方法。但是我无法在 cef 框架中获取 window.external 对象。我尝试在 window 对象中绑定我的 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 方法解决此问题?
试试这个:
external = CefV8Value::CreateObject(NULL, NULL)
external->SetValue("CallOrthoLink", jsCallOrthoLink, V8_PROPERTY_ATTRIBUTE_NONE)
global->SetValue("external", external, V8_PROPERTY_ATTRIBUTE_NONE)