【问题标题】:How can I find if IWebBrowser2::Navigate can't open the URL I want如何查找 IWebBrowser2::Navigate 是否无法打开我想要的 URL
【发布时间】:2012-08-21 14:05:52
【问题描述】:

如果IWebBrowser2::Navigate无法打开我想要的网址,我该如何查找?

我的意思是,网站可能根本不存在,IE只是显示一个错误404,并在函数后返回S_OK

如何获取导航请求状态的详细信息?

【问题讨论】:

    标签: internet-explorer com atl


    【解决方案1】:

    该方法返回成功,因为 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

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多