【发布时间】:2012-08-21 14:05:52
【问题描述】:
如果IWebBrowser2::Navigate无法打开我想要的网址,我该如何查找?
我的意思是,网站可能根本不存在,IE只是显示一个错误404,并在函数后返回S_OK。
如何获取导航请求状态的详细信息?
【问题讨论】:
标签: internet-explorer com atl
如果IWebBrowser2::Navigate无法打开我想要的网址,我该如何查找?
我的意思是,网站可能根本不存在,IE只是显示一个错误404,并在函数后返回S_OK。
如何获取导航请求状态的详细信息?
【问题讨论】:
标签: internet-explorer com atl
该方法返回成功,因为 Web 浏览器确实成功地根据您的请求进行导航。它做了它必须做的并且无法找到它的网站,正如预期的那样,它显示了 404 页面。因此,S_OK。
DWebBrowserEvents2::NavigateError Event 为您提供所需的详细信息。您需要处理浏览器事件以接收您需要的详细信息。
此事件在 Windows Internet Explorer 由于导航错误而显示错误页面之前触发。应用程序有机会通过将 Cancel 参数设置为 VARIANT_TRUE 来停止显示错误页面。但是,如果在原始导航中联系的服务器提供其自己的替代页面导航,则当您将 Cancel 设置为 VARIANT_TRUE 时,它不起作用,并且继续导航到服务器的替代页面。例如,假设导航到http://www.www.wingtiptoys.com/BigSale.htm 会导致触发此事件,因为该页面不存在。但是,服务器设置为将导航重定向到http://www.www.wingtiptoys.com/home.htm。在这种情况下,当您将 Cancel 设置为 VARIANT_TRUE 时,它没有任何作用,并且导航继续到 http://www.www.wingtiptoys.com/home.htm。
【讨论】: