KenTien 发表于 2025-2-14 08:27:24

CEF3专辑-进阶篇-05-URL加载到主框架

本帖最后由 KenTien 于 2025-3-11 08:27 编辑

1、应用场景:当我们对网页执行JS代码时,一般用到CefRefPtr<CefFrame> pFrame = browser->GetMainFrame();
但是一个网页也许会有很多个子框架,如果要在子框架执行JS代码就要遍历,所以很不方便。故有以下解决方案。

class ClientHandler : public CefClient,
                      public CefDisplayHandler,
                      public CefLifeSpanHandler,
                      public CefLoadHandler, //这里实现
                      public CefJSDialogHandler ,
                      public CefKeyboardHandler {
// CefClient methods:
virtual CefRefPtr<CefLoadHandler> GetLoadHandler() override { return this; }
// CefLoadHandler methods:
virtual void OnLoadEnd(CefRefPtr< CefBrowser > browser, CefRefPtr< CefFrame > frame, int         httpStatusCode
) override;
void SimpleHandler::OnLoadEnd(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int httpStatusCode)
{
      CefString url = frame->GetURL();
      if (url.ToString().find("rk.sszt.app.9125flying.com") != std::string::npos && url.ToString().find(".php?") != std::string::npos)
      {
      if (!hasLoadedGameURL)
      {
            browser->GetMainFrame()->LoadURL(url);
            hasLoadedGameURL = true;// bool 类型,在构造函数,列表初始化。 false
      }
      }
}                                                            




风中自由者 发表于 8 小时前

路过,看看撒情况

枕头大战 发表于 3 天前

666666666666666666666666666666

jiananhaohuai 发表于 4 天前

感谢分享

落日停机坪 发表于 2026-10-23 16:17:59

{:6_479:}{:6_479:}{:6_479:}{:6_479:}{:6_479:}

Isaac82 发表于 2026-10-22 20:32:29

看看怎么个事

Chloe21 发表于 2026-10-22 09:39:00

{:6_479:}{:6_479:}{:6_479:}{:6_479:}{:6_479:}

Ella17 发表于 2026-10-21 04:50:13

{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}

Avery33 发表于 2026-10-20 01:42:17

{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}{:6_341:}

假装自己是NPC 发表于 2026-10-19 19:02:15

必须支持一下
页: [1] 2
查看完整版本: CEF3专辑-进阶篇-05-URL加载到主框架