#include "stdafx.h" #include "Cef3V8HandlerEx.h" #include CCef3V8HandlerEx::CCef3V8HandlerEx() { m_pUrlMgr = new CUrlMgr(); } CCef3V8HandlerEx::~CCef3V8HandlerEx() { int a = 20; } bool CCef3V8HandlerEx::Execute(const CefString& name /*JavaScriptµ÷ÓõÄC++·½·¨Ãû×Ö*/, CefRefPtr object /*JavaScriptµ÷ÓÃÕß¶ÔÏó*/, const CefV8ValueList& arguments /*JavaScript´«µÝµÄ²ÎÊý*/, CefRefPtr& retval /*·µ»Ø¸øJSµÄÖµÉèÖøøÕâ¸ö¶ÔÏó*/, CefString& exception/*֪ͨÒì³£ÐÅÏ¢¸øJavaScript*/) { if (name == _T("GetBackUrl")) { retval = CefV8Value::CreateString(m_pUrlMgr->GetFirstUrl()); //if (arguments.size() == 2) //{ // CefString strParam1 = arguments.at(0)->GetStringValue(); // CefString strParam2 = arguments.at(1)->GetStringValue(); // TCHAR szBuffer[512]; // StringCbPrintf(szBuffer, sizeof(szBuffer), _T("jsInvokeCPlusPlus(%s,%s)"), strParam1.c_str(), strParam2.c_str()); // //::MessageBox(GetForegroundWindow(), szBuffer, _T("jsInvokeCPlusPlus"), MB_OK); // ////Ö´ÐÐjs²âÊÔ // //CefRefPtr pBrower = pWKEWebkitCtrl_->GetBrowserByID(nBrowserID); // //if (pBrower) // //{ // // pBrower->GetMainFrame().get()->ExecuteJavaScript("alert('ExecuteJavaScript succeed!');", pBrower->GetMainFrame().get()->GetURL(), 0); // //} // // //retval = CefV8Value::CreateInt(0); //} //else //{ // retval = CefV8Value::CreateInt(2); //} return true; } // Function does not exist. return false; } CUrlMgr *CCef3V8HandlerEx::GetUrlMgr() { return m_pUrlMgr; }