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
}
}
}
这样都可以,学习了
页:
[1]