[VB6] Problem mit webbrowser

Programmierer

Well-known member
ID: 99340
L
20 April 2006
1.256
80
Hallo

ein problem
ich mache folgendes:

Code:

Code:
WebBrowser1.Navigate "https://www.neopets.com/market.phtml?type=wizard"
waitok = "ne"
While waitok <> "ok"
DoEvents
Wend

dann noch:

Code:

Code:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
  If Not (pDisp Is WebBrowser1.Object) Then
Exit Sub
  End If
  waitok = "ok"
End Sub

problem:
der code nach der while-schleife wird sofort ausgeführt weil das webbrowser formular sofort sagt es wäre fertig obwohl es grad erst angefangen hat! was mache ich falsch?
 
meines Wissens nach sagt das Webbrowser Objekt immer sofot ees sei fertig, wenn die Seite aufrufen werden kann.

Du kannst über browser.progress prüfen ob dieSeite fertiggeladen ist, indem du überprüfst ob
browser.progress = browser.maxprogress ist...
 
meines Wissens nach sagt das Webbrowser Objekt immer sofot ees sei fertig, wenn die Seite aufrufen werden kann.

Du kannst über browser.progress prüfen ob dieSeite fertiggeladen ist, indem du überprüfst ob
browser.progress = browser.maxprogress ist...
browser.progress und browser.maxprogress gibt es nicht!
nurtze VB6
 
nee

sry hab mich falsh ausgedrückt...

du schreibst :

Option Explicit
Dim Status as integer


Private Sub Browser_ProgressChange(ByVal Progress as Long, ByVal ProgressMax as Long)
Status = (Progress * 100 / ProgressMax)
Do Evets

End Sub

Und danbn prüfst du immer ob Status bei 100 Steteht, denn das ist fertig geladen
 
Code:
WebBrowser1.Navigate "https://www.neopets.com/market.phtml?type=wizard"
Do
DoEvents
Loop until WebBrowser1.Busy = False

Müsste klappen
 
Hallo

Code:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 
If Not (pDisp Is WebBrowser1.Object) Then 
Exit Sub 
End If 
waitok = "ok" 
End Sub

Ändern in

Code:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) 
If pDisp Is WebBrowser1.Object Then
waitok = "ok"
End If
End Sub

Merke gerade dass Dein Code bei mir auch funktioniert, was ja auch normal sein sollte.
 
Zuletzt bearbeitet:
Geht auch nicht!

Also ma ne Frage an alle: Gibt es einen Code der definitiv sagt ob der browser läd oder nicht?

sollte auch nach einem formular.submit (sofort) verfügbar sein!
wenn ich also webbrowser1.document.forms(1).submit mache soll er auch SOFORT sagen dass er läd!
 
Neues Projekt erstellt, WebbrowserControl, Button, Textfeld draufgemacht (Namen default gelassen)
und folgenden Code hab ich benutzt:
Code:
Option Explicit

Private Sub Command1_Click()
WebBrowser1.Navigate Text1.Text
Command1.Enabled = False
Do
DoEvents
Loop Until WebBrowser1.Busy = False
Command1.Enabled = True
End Sub
 
scheint so noch zu gehen aber mach mal submit auf nen formular und lass mal die schleife laufen!
dann gehts sofort weiter ohne zu warten!
 
scheint so noch zu gehen aber mach mal submit auf nen formular und lass mal die schleife laufen!
dann gehts sofort weiter ohne zu warten!

Jo is ja klar, probier mal das hier:

Code:
Option Explicit

Private Sub Command1_Click()
WebBrowser1.Navigate Text1.Text
End Sub

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
Command1.Enabled = False
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Command1.Enabled = True
End Sub
 
hm
wenn ich in WebBrowser1_BeforeNavigate2 ne msgbox ausgebe und auf der seite nen link klicke kommt komischerweise 3 mal diese msgbox!
kann ich also auch weglassen...
 
hm
wenn ich in WebBrowser1_BeforeNavigate2 ne msgbox ausgebe und auf der seite nen link klicke kommt komischerweise 3 mal diese msgbox!
kann ich also auch weglassen...

Ja ich kann ja nicht ahnen was du sonst noch vor hast ;)
Für dein Problem, was da oben steht klappt die Lösung auf jeden fall ^^ (beide Lösungen)
 
habs jetzt mal so gelöst:

Code:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
started = True
ended = False
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
ended = True
End Sub
und dann immer

Code:
started = false
navigate oder Submit
While started = False
DoEvents
Wend
While ended = False
DoEvents
Wend

ist das so ok?
 
Also hab grad festgestellt, dass BeforeNavigate2 auch immer ausgelöst wird, wenn eine Seite in einem Frame geladen wird (is ja auch eigendlich logisch), falls du also eine Seite mit nem Frame hast, welches immer wieder neu geladen wird (z.B. ne Shoutbox), kommt halt immer ne neue Messagebox