Comment visualiser une page inter/intranet avec le WebBrowser ???

Le
teddy
Bonjour à tous,

Je sais charger une page à l'adresse xURL dans le WebBrowser :
WebBrowser1.Navigate xURL
DoEvents

Le problème, c'est que je charge une page d'accueil qui ensuite déclenche
via javascript l'ouverture d'une nouvelle fenêtre Internet Explorer et donc
court-cicuite mon WebBrowser qui continue à afficher la page d'accueil.

Auriez-vous déjà rencontré ce problème et trouvé une solution ?
Je veux que la fenêtre fille s'affiche aussi dans le WebBrowser comme s'est
affiché ma page d'accueil xURL.

Le but final étant de récupérer la page intéressante (fenêtre fille) pour
analyser et sauvegarder des données (cours de bourse par exemple) via le
code :

Dim hElm As IHTMLElement
Dim htmltext As String
Set hElm = WebBrowser1.Document.All.tags("html").Item(0)
htmltext = hElm.outerHTML

Merci pour vos suggestions.

Teddy
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
teddy
Le #15412851
Je précise que la fenêtre mère (page d'accueil) sert au login donc elle est
incontournable.
La fenêtre fille ne peut pas être appelée directement par son URL qui
d'ailleurs change tout le temps (selon des variables de session du serveur
IIS entre autres).

" teddy" %23tF$
Bonjour à tous,

Je sais charger une page à l'adresse xURL dans le WebBrowser :
WebBrowser1.Navigate xURL
DoEvents

Le problème, c'est que je charge une page d'accueil qui ensuite déclenche
via javascript l'ouverture d'une nouvelle fenêtre Internet Explorer et
donc court-cicuite mon WebBrowser qui continue à afficher la page
d'accueil.

Auriez-vous déjà rencontré ce problème et trouvé une solution ?
Je veux que la fenêtre fille s'affiche aussi dans le WebBrowser comme
s'est affiché ma page d'accueil xURL.

Le but final étant de récupérer la page intéressante (fenêtre fille) pour
analyser et sauvegarder des données (cours de bourse par exemple) via le
code :

Dim hElm As IHTMLElement
Dim htmltext As String
Set hElm = WebBrowser1.Document.All.tags("html").Item(0)
htmltext = hElm.outerHTML

Merci pour vos suggestions.

Teddy




François Picalausa
Le #15412841
On Apr 2, 8:20 pm, " teddy"
Je précise que la fenêtre mère (page d'accueil) sert au login donc elle est
incontournable.
La fenêtre fille ne peut pas être appelée directement par son URL q ui
d'ailleurs change tout le temps (selon des variables de session du serveur
IIS entre autres).

" teddy" %23tF$ Bonjour à tous,

> Je sais charger une page à l'adresse xURL dans le WebBrowser :
> WebBrowser1.Navigate xURL
> DoEvents

> Le problème, c'est que je charge une page d'accueil qui ensuite déc lenche
> via javascript l'ouverture d'une nouvelle fenêtre Internet Explorer et
> donc court-cicuite mon WebBrowser qui continue à afficher la page
> d'accueil.

> Auriez-vous déjà rencontré ce problème et trouvé une solution ?
> Je veux que la fenêtre fille s'affiche aussi dans le WebBrowser comme
> s'est affiché ma page d'accueil xURL.



Hello,

L'événement NewWindow3 (à partir de Windows XP Service Pack 2), ou
NewWindow2 à défaut, permet normalement de rediriger l'ouverture de la
nouvelle fenêtre vers un autre contrôle webbrowser ou objet internet
explorer.

Je n'ai pas VB sous la main, mais le code devrait ressembler à:
Private Sub WebBrowser1_NewWindow2( ByRef ppDisp As Object, ByRef
Cancel As Boolean)
Set ppDisp = WebBrowser1
End Sub
L'article suivant de la KB propose un autre exemple:
http://support.microsoft.com/kb/184876

Si cela ne convient pas et que tu as uniquement besoin de l'URL,
l'événement BeforeNavigate2 pourrait fonctionner:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, ByRef
Url As Variant, _
ByRef Flags As Variant, ByRef TargetFrameName As Variant, _
ByRef PostData As Variant, ByRef Headers As Variant,
ByRef Cancel As Boolean)

If Not (pDisp Is WebBrowser1) Then
Cancel = True
WebBrowser1.Navigate2(Url)
End If
End Sub

François
teddy
Le #15412641
Je souhaite afficher la nouvelle page (celle qui s'affiche dans une fenêtre externe IE) dans un
WebBrowser de mon application VB et au lieu de IE.
Ce n'est pas son URL dont j'ai besoin (sans intérêt puisque ça change tout le temps), c'est son
contenu qui m'intéresse.
Merci beaucoup pour la suggestion.
Je vais essayer l'événement NewWindow3.
Résultat demain soir.

Ted

"François Picalausa"
On Apr 2, 8:20 pm, " teddy"
Je précise que la fenêtre mère (page d'accueil) sert au login donc elle est
incontournable.
La fenêtre fille ne peut pas être appelée directement par son URL qui
d'ailleurs change tout le temps (selon des variables de session du serveur
IIS entre autres).

" teddy" %23tF$ Bonjour à tous,

> Je sais charger une page à l'adresse xURL dans le WebBrowser :
> WebBrowser1.Navigate xURL
> DoEvents

> Le problème, c'est que je charge une page d'accueil qui ensuite déclenche
> via javascript l'ouverture d'une nouvelle fenêtre Internet Explorer et
> donc court-cicuite mon WebBrowser qui continue à afficher la page
> d'accueil.

> Auriez-vous déjà rencontré ce problème et trouvé une solution ?
> Je veux que la fenêtre fille s'affiche aussi dans le WebBrowser comme
> s'est affiché ma page d'accueil xURL.



Hello,

L'événement NewWindow3 (à partir de Windows XP Service Pack 2), ou
NewWindow2 à défaut, permet normalement de rediriger l'ouverture de la
nouvelle fenêtre vers un autre contrôle webbrowser ou objet internet
explorer.

Je n'ai pas VB sous la main, mais le code devrait ressembler à:
Private Sub WebBrowser1_NewWindow2( ByRef ppDisp As Object, ByRef
Cancel As Boolean)
Set ppDisp = WebBrowser1
End Sub
L'article suivant de la KB propose un autre exemple:
http://support.microsoft.com/kb/184876

Si cela ne convient pas et que tu as uniquement besoin de l'URL,
l'événement BeforeNavigate2 pourrait fonctionner:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, ByRef
Url As Variant, _
ByRef Flags As Variant, ByRef TargetFrameName As Variant, _
ByRef PostData As Variant, ByRef Headers As Variant,
ByRef Cancel As Boolean)

If Not (pDisp Is WebBrowser1) Then
Cancel = True
WebBrowser1.Navigate2(Url)
End If
End Sub

François
teddy
Le #15412231
C'est bon.
Ca marche avec l'évènement NewWindow2 !
Merci encore.

Ted

"François Picalausa"
On Apr 2, 8:20 pm, " teddy"
Je précise que la fenêtre mère (page d'accueil) sert au login donc elle
est
incontournable.
La fenêtre fille ne peut pas être appelée directement par son URL qui
d'ailleurs change tout le temps (selon des variables de session du serveur
IIS entre autres).

" teddy" %23tF$ Bonjour à tous,

> Je sais charger une page à l'adresse xURL dans le WebBrowser :
> WebBrowser1.Navigate xURL
> DoEvents

> Le problème, c'est que je charge une page d'accueil qui ensuite
> déclenche
> via javascript l'ouverture d'une nouvelle fenêtre Internet Explorer et
> donc court-cicuite mon WebBrowser qui continue à afficher la page
> d'accueil.

> Auriez-vous déjà rencontré ce problème et trouvé une solution ?
> Je veux que la fenêtre fille s'affiche aussi dans le WebBrowser comme
> s'est affiché ma page d'accueil xURL.



Hello,

L'événement NewWindow3 (à partir de Windows XP Service Pack 2), ou
NewWindow2 à défaut, permet normalement de rediriger l'ouverture de la
nouvelle fenêtre vers un autre contrôle webbrowser ou objet internet
explorer.

Je n'ai pas VB sous la main, mais le code devrait ressembler à:
Private Sub WebBrowser1_NewWindow2( ByRef ppDisp As Object, ByRef
Cancel As Boolean)
Set ppDisp = WebBrowser1
End Sub
L'article suivant de la KB propose un autre exemple:
http://support.microsoft.com/kb/184876

Si cela ne convient pas et que tu as uniquement besoin de l'URL,
l'événement BeforeNavigate2 pourrait fonctionner:
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, ByRef
Url As Variant, _
ByRef Flags As Variant, ByRef TargetFrameName As Variant, _
ByRef PostData As Variant, ByRef Headers As Variant,
ByRef Cancel As Boolean)

If Not (pDisp Is WebBrowser1) Then
Cancel = True
WebBrowser1.Navigate2(Url)
End If
End Sub

François
Publicité
Poster une réponse
Anonyme