
正文
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就可以禁止创建新窗口。






