之前看了几个方法需要封装控件,研究了一下,只要在Xilium.CefGlue下的CefLifeSpanHandler类里,找到跳转触发的方法里捕获就可以了,代码如下:
protected virtual bool OnBeforePopup(CefBrowser browser, CefFrame frame, string targetUrl, string targetFrameName, CefWindowOpenDisposition targetDisposition, bool userGesture, CefPopupFeatures popupFeatures, CefWindowInfo windowInfo, ref CefClient client, CefBrowserSettings settings, ref bool noJavascriptAccess)
{
switch(targetDisposition)
{
case CefWindowOpenDisposition.NewForegroundTab:
case CefWindowOpenDisposition.NewBackgroundTab:
case CefWindowOpenDisposition.NewPopup:
case CefWindowOpenDisposition.NewWindow:
browser.GetMainFrame().LoadUrl(targetUrl);
return true;
default:
break;
}
return false;
}