Problème d'évènement

Le
Patrice Henrio
Je suis confronté à un problème agaçant que je n'arrive pas à m'expliquer.
Si quelqu'un a la solution .
Donc j'utilise un WebBrowser qui charge un fichier
Lors du Load de la forme, j'appelle InitWB

Sub InitWb
With FormeHistoire.WBHistoire
.Navigate2 "file://" & Chemin & "Histoires.htm"
End With
End Sub

Normalement cette méthode doit générer les évènement
BeforeNavigate2 et DocumentComplete
sur l'objet WBHistoire

Or il se passe que l'appel à ces événements est aléatoire :
J'ai ajouter un MsgBox dans chaque évènement pour pister le déroulement :
parfois les deux événements surviennent et le résultat est celui cherché,
parfois un seul des deux, voire même aucun des deux. Cela génère un bug dans
mon programme qui ne fait pas tout à fait ce que je souhaiterai.
Dans DocumentComplete en particulier, j'initialise, à partir du document
chargé, une collection dont j'ai bien sûr besoin pour la suite.

J'ai pensé qu'un doevent juste après InitWB améliorerait, mais cela n'a
permis que d'augmenter la fréquence des passages dans
BeforeNavigate2 et DocumentComplete, sans le systématiser.

J'y perds mon basic.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Antoun
Le #14734941
d'expérience, le Document_Complete est effectivement assez aléatoire,
dépendant de trop de paramètres non maîtrisés (images introuvables,
plugins, erreur javascript, redirections, etc.)... mais sur un fichier
local, je n'aurai pas cru !

essaie différentes possibilités, de mémoire WB_ProgressChange et
WB_StatusTextChange donnaient de meilleurs résultats...

good luck !

Antoun
parci
Le #14734911
In : ,
Patrice Henrio
Je suis confronté à un problème agaçant que je n'arrive pas à
m'expliquer. Si quelqu'un a la solution ....
Donc j'utilise un WebBrowser qui charge un fichier
Lors du Load de la forme, j'appelle InitWB

Sub InitWb
With FormeHistoire.WBHistoire
.Navigate2 "file://" & Chemin & "Histoires.htm"
End With
End Sub

Normalement cette méthode doit générer les évènement
BeforeNavigate2 et DocumentComplete
sur l'objet WBHistoire

Or il se passe que l'appel à ces événements est aléatoire :
J'ai ajouter un MsgBox dans chaque évènement pour pister le
déroulement : parfois les deux événements surviennent et le résultat
est celui cherché, parfois un seul des deux, voire même aucun des
deux. Cela génère un bug dans mon programme qui ne fait pas tout à
fait ce que je souhaiterai.
Dans DocumentComplete en particulier, j'initialise, à partir du
document chargé, une collection dont j'ai bien sûr besoin pour la
suite.

J'ai pensé qu'un doevent juste après InitWB améliorerait, mais cela
n'a permis que d'augmenter la fréquence des passages dans
BeforeNavigate2 et DocumentComplete, sans le systématiser.



Tu pourrais essayer comme ça :

Private m_pDisp As Object

Private Sub m_oWbSink_BeforeNavigate2(ByVal pDisp As Object ...)
If m_pDisp Is Nothing Then
Set m_pDisp = pDisp
End If
End Sub

Private Sub m_oWbSink_DocumentComplete(ByVal pDisp As Object, URL As
Variant)
If (pDisp Is m_pDisp) Then
Set m_pDisp = Nothing
' ici ton code
End If
End Sub
Publicité
Poster une réponse
Anonyme