打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CEF中弹出窗口的处理

CEF开发如果不想在弹出窗口中打开网页,即想要在当前窗体加载目标Url,

就需要重写OnBeforePopup,它是属于CefLifeSpanHandler类中的.

/*--cef(optional_param=target_url,optional_param=target_frame_name)--*/bool SimpleHandler::OnBeforePopup(
  CefRefPtr<CefBrowser> browser,  CefRefPtr<CefFrame> frame,  const CefString& target_url,  const CefString& target_frame_name,  WindowOpenDisposition target_disposition,  bool user_gesture,  const CefPopupFeatures& popupFeatures,  CefWindowInfo& windowInfo,  CefRefPtr<CefClient>& client,  CefBrowserSettings& settings,  bool* no_javascript_access){ switch (target_disposition) { case WOD_NEW_FOREGROUND_TAB: case WOD_NEW_BACKGROUND_TAB: case WOD_NEW_POPUP: case WOD_NEW_WINDOW: browser->GetMainFrame()->LoadURL(target_url); return true; //停止创建 } return false;}

第一个参数browser代表了发出popup请求的浏览器对象,

frame是发出popup请求的那个frame,

target_url是要加载的目标url,

target_disposition是显示方式。

返回true就可以禁止创建新窗口。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Chromium之cef3的.net封装(定制化的浏览器)
QT分析之WebKit(四) - net
webkit内核分析之 Frame
WebKit内核源码分析(一)
WebKit中的Chrome和ChromeClient
WKWebView与JS交互实战技巧之API介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服