CEF中彈出窗口的處理
阿新 • • 發佈:2019-02-01
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, constCefString& 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中彈出窗口的處理