Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Controle WebBrowser

9 réponses
Avatar
Delf
Bonjour.

Une application WinForm dispose d'un WebBrowser affichant une page HTML
contenant des scripts jQuery.

Le rendu peut donc prendre 1, 2 secs une fois la page affichee, et donc
afficher pendant ce laps de temps un layout assez disgracieux (le temps
que les scripts Javascript s'executent).

Est-il possible de dire au controle de n'afficher la page que quand
celle-ci a fini son rendu "cote" client ?

Merci.

9 réponses

Avatar
La_fille_qui_pleure_du_sang
Bonjour

Il es possible de tout mettre dans une dive avec un display none, et de
changer la propriété CSS en JS à la fin du script avec un display block

Dr

"Delf" a écrit dans le message de
news:4ab641e5$0$16769$
Bonjour.

Une application WinForm dispose d'un WebBrowser affichant une page HTML
contenant des scripts jQuery.

Le rendu peut donc prendre 1, 2 secs une fois la page affichee, et donc
afficher pendant ce laps de temps un layout assez disgracieux (le temps
que les scripts Javascript s'executent).

Est-il possible de dire au controle de n'afficher la page que quand
celle-ci a fini son rendu "cote" client ?

Merci.





Avatar
Delf
La_fille_qui_pleure_du_sang avait soumis l'idée :

Il es possible de tout mettre dans une dive avec un display none, et de
changer la propriété CSS en JS à la fin du script avec un display block



Tout simplement :) Merci.
Avatar
Delf
Delf a utilisé son clavier pour écrire :

La_fille_qui_pleure_du_sang avait soumis l'idée :

Il es possible de tout mettre dans une dive avec un display none, et de
changer la propriété CSS en JS à la fin du script avec un display block



Tout simplement :) Merci.



Erf, un des scripts jQuery plante si le container est masqué...
Donc solution non envisageable.

Je vais voir côté events ce que je trouve de bien.
Avatar
Gloops
Delf a écrit, le 20/09/2009 23:26 :
Erf, un des scripts jQuery plante si le container est masqué...
Donc solution non envisageable.




Et si c'est le WebBrowser, qui est non visible ?
Avatar
La_fille_qui_pleure_du_sang
"Delf" a écrit dans le message de
news:4ab69e08$0$4145$
Delf a utilisé son clavier pour écrire :

La_fille_qui_pleure_du_sang avait soumis l'idée :

Il es possible de tout mettre dans une dive avec un display none, et de
changer la propriété CSS en JS à la fin du script avec un display block



Tout simplement :) Merci.



Erf, un des scripts jQuery plante si le container est masqué...
Donc solution non envisageable.

Je vais voir côté events ce que je trouve de bien.





Sinon, plutot que de masquer par visible, tu met un padding top de 100000
pour que ça soit tout en bas, puis tu le remonte à la fin...
Avatar
Gloops
La_fille_qui_pleure_du_sang a écrit, le 21/09/2009 05:40 :
Sinon, plutot que de masquer par visible, tu met un padding top de
100000 pour que ça soit tout en bas, puis tu le remonte à la fin...



Ou si on veut encore d'autres idées, placer le contrôle en dehors du
champ visible, de par sa position. Bien entendu ça marche mieux si
l'utilisateur ne modifie pas la taille de la fenêtre (du moins du
webbrowser), ou que le contrôle à cacher soit repositionné en rép onse à
l'événement correspondant.

C'est vrai qu'on a déjà vu des concepteurs de composants penser à p lein
de possibilités pour les empêcher de fonctionner. Moui, en voyant ç a on
se demande si ce n'est pas du talent mal employé ...
Avatar
Gloops
La_fille_qui_pleure_du_sang a écrit, le 21/09/2009 05:40 :
Sinon, plutot que de masquer par visible, tu met un padding top de
100000 pour que ça soit tout en bas, puis tu le remonte à la fin...



Ah oui encore une idée : placer un autre contrôle par-dessus le
webbrowser, et laisser celui-ci afficher tout ce qu'il veut en dessous,
de toute manière on ne voit rien.

J'ai déjà vu une application détecter si un volet est caché et ta nner
l'utilisateur jusqu'à ce qu'il le laisse voir, c'était Eudora avec so n
panneau publicitaire. Pour l'exécution d'une requête SQL ça serait
vachement vicieux.
Avatar
Delf
Gloops vient de nous annoncer :

Ah oui encore une idée : placer un autre contrôle par-dessus le webbrowser,
et laisser celui-ci afficher tout ce qu'il veut en dessous, de toute manière
on ne voit rien.



Oui mais vu que la page a son rendu modifié via du Javascript, comment
le WebBrowser peut savoir si le rendu est fini ou pas ?

La meilleure solution me paraît être le déplacement du body à
l'extérieur pour le masquer le temps que le rendu soit fait.
Avatar
Gloops
Delf a écrit, le 27/09/2009 10:31 :
Oui mais vu que la page a son rendu modifié via du Javascript, commen t
le WebBrowser peut savoir si le rendu est fini ou pas ?

La meilleure solution me paraît être le déplacement du body à
l'extérieur pour le masquer le temps que le rendu soit fait.





ça paraît effectivement bien plus simple.
De mémoire il me semble que le WebBrowser déclenche un événement
lorsqu'il a fini son rendu, mais sous Javascript effectivement il y a
des chances que ce soit plus direct -dans le sens qu'il y a moins de
fonctions différentes à écrire dans différents coins, à synchro niser
correctement.

Enfin je dois avouer que la dernière fois que j'ai manipulé un
WebBrowser remonte à quelques mois.