1. 程式人生 > >CEF中彈出窗口的處理

CEF中彈出窗口的處理

false string ngs 創建 第一個 方式 tab 打開網頁 inf

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

CEF中彈出窗口的處理