CEF3 C++语言如何 Get HTML Source from Chromium Embedded

发布于 2021-11-30 20:56:01 字数 441 浏览 938 评论 1

我的是基于win32 的CEF3,我想获取CEF3加载网页的源码,代码如下,但是运行到visitor->Visit(t_cefstring);会保错,难道是没重写Visit,但是如何重写呢?

void ClientHandler::OnLoadStart(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame)

{
// Retrieve the current page source and display.
CefString  t_cefstring;
CefRefPtr<CefStringVisitor> visitor;
frame->GetSource(visitor);
visitor->Visit(t_cefstring);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情场扛把子 2021-12-02 09:51:22

class Visitor : public CefStringVisitor {

public:

explicit Visitor(CefRefPtr<CefBrowser> browser, LPVOID lpContext, Ec_GetSource_CallBack lpCallbackFunction) : browser_(browser),

context(lpContext), callback(lpCallbackFunction) {}

virtual void Visit(const CefString& string) OVERRIDE {

if (callback)

callback(context, string.ToWString().c_str());

}

private:

CefRefPtr<CefBrowser> browser_;

Ec_GetSource_CallBack callback;

PVOID context;

IMPLEMENT_REFCOUNTING(Visitor);

};

CefRefPtr<Visitor> a = new Visitor(browser, lpContext, lpCallbackFunction);

browser->GetMainFrame()->GetSource(a);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文