【发布时间】:2014-07-26 16:08:54
【问题描述】:
今天我正在使用 Chromium Embedded Framework 3。
我已经设置、编译和执行了所有内容。一切正常。
现在我想在渲染完所有内容并执行 JavaScript 后读取页面源代码。 我还想从屏幕外渲染中获取缓冲区。
我的基本应用结构是:
App实现CefApp、CefBrowserProcessHandler和CefRenderProcessHandler
Handler 实现 CefClient、CefDisplayHandler、CefLifeSpanHandler、CefLoadHandler 和 CefRenderHandler
Visitor 实现 CefStringVisitor
在 App::OnContextInitialized() 中我正在执行
CreateBrowser(window_info, handler.get(), "http://www.google.com/", browser_settings, NULL);
同时
window_info.SetAsWindowless(NULL, true);
现在只有在我使用单模式运行 CEF3 时才会调用 App::OnContextCreated()
main_settings.single_process = true;
否则它永远不会被调用。在 App::OnContextCreated() 我正在做
浏览器->GetMainFrame()->GetSource(new Visitor());
获取页面源并且它可以工作,但是该方法被多次调用并且此时似乎没有执行JavaScript。
我现在的问题是,在呈现所有内容并执行 JavaScript 之后,阅读页面源代码的最佳点是什么?
同时 Handler::OnPaint() 永远不会被调用,而 Handler::GetViewRect() 会被调用。
问候
挪威
【问题讨论】:
标签: c++ chromium chromium-embedded