2010-02-04 5 views
1

J'utilise le contrôle webbrowser intégré dans un winform dans mon application C# pour faire un peu de grattage. Le contenu que je recherche est chargé dynamiquement avec ajax. Cependant, lorsque je navigue vers la page, le contenu ne se chargera pas à moins que je n'ai aucun autre code en cours d'exécution. J'ai essayé de faireWebBrowser Control bloquant ajax

while(webbrowser1.isBusy); 

Mais cela n'aide pas. J'ai essayé aussi arrêtant le programme pendant quelques secondes pour lui donner le temps de charger

Thread.Sleep(2000); 

mais il est toujours pas le chargement. Si je navigue vers la page sans code suivant, il se charge bien. Je ne suis pas vraiment sûr de savoir comment je pourrais diviser cela en fils. Toute aide serait appréciée.

+0

Êtes-vous en train de gérer l'événement Document.Complete? –

+0

Ouais j'ai essayé ça. Je l'ai eu en utilisant un temps cependant. –

Répondre

0

while (webbrowser1.isBusy); et Thread.Sleep (2000); bloquerait la pompe principale de message, et ajax exige une pompe de message pour le rappel asynchrone. Je vous suggère de démarrer une minuterie dans DocumentComplete pour interroger la page Web régulièrement jusqu'à ce que vous pensiez que la page est complète. N'oubliez pas d'arrêter la minuterie dans BeforeNavigate2

+0

oui, c'est exactement ce que j'ai fini par faire. –

Questions connexes