Question

i'm trying to get the onreadystate value from the browser control do detect when the page has finished loading. unfortunately the event's .returnValue returns empty. what's wrong?

here's my code - thx:

Dim WithEvents m_doc As HTMLDocument

Private Sub Form_Load()
    Set m_doc = WebBrowser1.Document
End Sub

Private Sub m_doc_onreadystatechange()
Dim m_event As IHTMLEventObj
    Set m_event = m_doc.parentWindow.event
    m_value = "'" & m_event.returnValue & "'"
    MsgBox "onreadystatechange: " & m_value
End Sub
Was it helpful?

Solution

If you want to use the HTMLDocument's events try

m_doc.createDocumentFromUrl "http://www.microsoft.com", ""

Otherwise you can use the WebBrowser control's event to detect when a document is completely loaded or call the Navigate or Navigate2 method and immediately loop while polling the WebBrowser.ReadyState

WebBrowse1.Navigate2 "http://www.microsoft.com"
Do While WebBrowser1.ReadyState <> READYSTATE_COMPLETE
    DoEvents
Loop

Of course don't forget to add an error handler.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top