我正在编写一个MFC Windows C ++应用程序,该应用程序使用CHtmlView在UI中显示WebBrowser控件。我遇到了重定向HTTP错误的问题。在我开始讨论这个问题之前,请允许我说在这种情况下我不可能使用CEF或任何其他可嵌入的浏览器。
我有一个C ++类,它派生自CHtmlView
(WebBrowser控件)。该类在初始化时使用URL调用Navigate2
。在某些情况下,导航可以导致403或404.我想拦截该HTTP错误并重定向到我选择的页面,甚至再次调用Navigate2
重试。但是,当我从Navigate2
内拨打OnNavigateError
时,它似乎没有任何效果,浏览器也不会切换到其他网址。
void MyCHtmlView::OnNavigateError(LPCTSTR url, PCTSTR frame, DWORD error, BOOL *cancel)
{
*cancel = FALSE;
Navigate2(error_url, NULL, NULL); // Doesn't navigate to error_url?!
}
有谁知道如何解决这个问题?感谢。