我用 VBMHWB 作浏览器打开 http://bbs.wtojob.com/ 这个网页,然后填写用户名和密码,手工点击 '登录' 按钮,但是页面没有刷新,跟登陆之前的没有什么区别,需要再按一下 F5 键 ,才刷新页面,刷新页面了以后才知道已经登陆成功,而其他浏览器可以正常登陆无需F5键刷新。请问这是什么原因?如何解决?我用的语言是VB6,最好能附上代码,多谢了!

解决方案 »

  1.   

    这现象很可能是一些东东没处理好    pWB.Silent = gbSilent
        pWB.UseIEDefaultFileDownload = False
        pWB.DocumentHostUiFlags = glWBUIFlags
        'default DLCTL_DLIMAGES Or DLCTL_BGSOUNDS Or DLCTL_VIDEOS
        pWB.DocumentDownloadControlFlags = glWBDownloadFlags
        pWB.ContextMenuAction = glContextMenuAction
    VBMHWB用的核心还是IE的核心 空点都有反应
      

  2.   

    Private Sub pWB_DocHostShowMessage(ByVal wbUID As Integer, ByVal lHwnd As Long, ByVal strText As String, ByVal strCaption As String, ByVal lType As Long, ByVal strHelpFile As String, ByVal lHelpContext As Long, lReturnValue As Long, ShowMsgInternaly As Boolean)
    Private Sub pWB_NavigateError(ByVal wbUID As Integer, ByVal pDisp As Object, URL As Variant, TargetFrameName As Variant, StatusCode As Variant, Cancel As Boolean)
    Private Sub pWB_OnFileDLDownloadError(ByVal FileDlUID As Integer, ByVal sUrl As String, ByVal sErrorMsg As String)
    注意上上面两标记跟上面三错误的设置
      

  3.   

    WebBrower 试过了,没问题!
      

  4.   


    能否解释一下这几个参数如何设置?以下是我个人的理解,不知对不对?
        pWB.Silent                      'boolean 值,不再显示任何网页错误引起的对话框
        pWB.UseIEDefaultFileDownload    'boolean 值,使用系统默认的下载方式
        pWB.DocumentHostUiFlags = glWBUIFlags   ’不知如何设置,也不知用来控制什么东西
        'default DLCTL_DLIMAGES Or DLCTL_BGSOUNDS Or DLCTL_VIDEOS
        pWB.DocumentDownloadControlFlags = glWBDownloadFlags  '用来控制是否下载网页文档中的图片,声音,视频等等
        pWB.ContextMenuAction = glContextMenuAction  '用来控制菜单,让他显示系统的右键菜单,这是我常用的'======================================================================
    说明一下:
    1 我们填写了用户名和密码,然后按“登陆”按钮(提交表单到服务器),页面没有反应
    2 在页面没有反应的情况下,我们右键菜单刷新该页面,或者F5键刷新该页面,就发现页面已经成功登陆
    3 这样我们可以推断,表单已经提交到服务器,并且服务器已经正确的反应了请求,而且已经在我们电脑的缓存中写入了网页数据,只是页面没有刷新。
    4 那我们是不是可以推断:网页中重新刷新页面的代码失效?还是我们的VBMHWB控件的参数设置有问题?
    5 我试过了, webbrowser控件没有这个问题。
      

  5.   

    这东西很麻烦,那UI是界面相关,最好都打开,反正VBMHWB里有枚举值,看着就大约懂得意思了    glWBUIFlags = glWBUIFlags Or WBDOCHOSTUIFLAG_THEME
        
        glWBUIFlags = glWBUIFlags Or WBDOCHOSTUIFLAG_DIALOG
        glWBUIFlags = glWBUIFlags Or WBDOCHOSTUIFLAG_NO3DBORDER
        glWBUIFlags = glWBUIFlags Or WBDOCHOSTUIFLAG_SCROLL_NO
        glWBUIFlags = glWBUIFlags Or WBDOCHOSTUIFLAG_FLAT_SCROLLBAR我也忘了是什么意思,反正到处COPY来的,还有那个错误捕捉也会有关系,下载的用默认最好
      

  6.   

    问题已经解决,代码如下:
    Private Sub vbWB1_OnHTTPSecurityProblem(ByVal wbUID As Integer, ByVal lProblem  _
    As long, Cancel As Boolean)
        'vbwb 控件无法自动更新,让他自动更新
         '默认情况下,Cancel =true,如发生 12168 的错误,让 Cancel =false
        '12168的错误是什么错误不知道,无法找到错误代码的说明文档。
        If lProblem = 12168 Then Cancel = False
    End Sub多谢各位,特别是 jiaguoxinzhi,多谢了!