各位高手: 我用webbrower编了一个输出程序,主要格式如下:    Private Sub Form_Load()
       WebBrowser1.Navigate "about:blank"
    End Sub    Private Sub Command2_Click()      With WebBrowser1.Document          .write "<iframe id=F1 src='about:blank'></iframe>"
          .write "<iframe id=F2 src='about:blank'></iframe>"      End With
      ' 
      WebBrowser1.Document.all("F2").document.write "xxxx"
    End Sub  在 815/WIN2k 环境下程序运行正常,P4/WINXP 环境下会出现‘发生意外’的错误信息,经过测试我知道了原因是webbrowser控件还没有完全加载IFrame元素的Document对象(about:blank)。
(我在 WebBrowser1.Document.all("F1").document.write "xxxx" 处添加切换断点,在调试状态按下 F8 可以正确跳到下一行。字符串"xxxx"正确写到 F2 的文本区) 问题:我怎么样得知 WebBrowser1.Document.all("F1").document 对象是否处于可使用状态?(WebBrowser1 的 DocumentComplete 事件不会返回IFrame元素的值)

解决方案 »

  1.   

    你这样改一下看看:
        With WebBrowser1.Document        .write "<iframe id=F1 src='about:blank'></iframe>"
            .write "<iframe id=F2 src='about:blank'></iframe>"    End With
          '
        While WebBrowser1.Busy
            DoEvents
        Wend
        WebBrowser1.Document.All("F2").Document.write "xxxx"在我的机器上面没有出现这样的问题,我的机器是P4/Windows 2003。
      

  2.   

    这样是不行的,最后加一句
    MsgBox WebBrowser1.Document.body.innerhtml
    看看另:刚写入时,不会加载任何东西,只有代码在那里,要刷新后才加载。