FBrowserCEF3Lib浏览器开发技术交流网址

 找回密码
 立即注册
查看: 2857|回复: 1

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

[复制链接]

签到天数: 32 天

[LV.5]常住居民I

10

主题

34

回帖

554

积分

中级会员LV1

太阳月亮月亮星星

积分
554
发表于 2025-2-14 08:27:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

[JavaScript] 查看源码 复制代码
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
        }
        }
}         
                                                   




签到天数: 226 天

[LV.7]常住居民III

1

主题

166

回帖

5456

积分

超级版主

皇冠皇冠皇冠太阳

积分
5456

永久VIP会员活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

发表于 2025-2-14 20:02:22 | 显示全部楼层
这样都可以,学习了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们 在线手册 视频教程 赞助支持 CEF官网 易语言官网 火山开发官网
拒绝任何人以任何形式在本网站发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表本网站立场!

网址帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!

Archiver| 手机版| 小黑屋| 联系QQ:283987887 劰载中...

Powered by Discuz! X5.0 GMT+8, 2026-9-17 07:14 , Processed in 0.027425 second(s), 12 queries , Redis On.

 川公网安备51090302000262 蜀ICP备2023034329号
快速回复 返回顶部 返回列表