• DOCHOSTUIFLAG_HOST_NAVIGATES 标志位有可能导致WebBrowser控件工作异常


          在WebBrowser控件的IDocHostUIHandler::GetHostInfo() 方法中,针对IE7以及以上版本,新支持了DOCHOSTUIFLAG_HOST_NAVIGATES、DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION、DOCHOSTUIFLAG_USE_WINDOWLESS_SELECTCONTROL、DOCHOSTUIFLAG_USE_WINDOWED_SELECTCONTROL等几个新的标志位。其中DOCHOSTUIFLAG_HOST_NAVIGATES 标志位一定要慎用。经测试后发现,某些情况下该标志位会引起WebBrowser"停止响应"问题。

          具体表现如下:

    1) 设置该标志位后,对于通过脚本设置窗体大小位置的情况,相应事件将不会被触发。具体包括DWebBrowserEvents2中的WindowSetHeight、WindowSetLeft、WindowSetTop、WindowSetWidth 等事件。如果您想通过捕捉DWebBrowserEvents2的一系列事件来控制通过脚本中类似window.open() 产生的新窗体时。以上事件将不会通知即将创建的窗体大小和位置;

    2) 设置该标志位后,若在NewWindow2、NewWindow3中设定Cancel = true;那么会使WebBrowser进入"假死"状态,该状态的表现就是,在上次Cancel = true;取消创建新窗体的操作后,再次导航其它页面,WebBrowser将不会有任何的事件通知,并且WebBrowser也不会真正执行导航操作。当再次导航(调用Navigate或Navigate2方法)时才会恢复正常;

         对于WebBrowser这个神物,没事儿还是不要乱设Flag的好。

  • 相关阅读:
    nodeType的12种类型
    XML(可拓展标记语言)
    python基础教程总结15——2 画幅好画
    正则表达式
    python基础教程总结15——1.即时标记
    python基础教程总结14——测试
    python基础教程总结13——网络编程,
    python基础教程总结12——数据库
    python基础教程总结11——图形用户界面GUI
    python基础教程总结10——文件
  • 原文地址:https://www.cnblogs.com/michaellee/p/1324873.html
Copyright © 2020-2023  润新知