Objet WebBrowser, popups et sessions

chino18 Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 avril 2011 - 3 juin 2010 à 10:38
Pr0grammeur Messages postés 13 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 29 août 2010 - 6 août 2010 à 22:22
Salut à tous

Je développe actuellement un navigateur développé en VB.NET. Je travaille avec VS 2008.

J'ai un gros problème avec les popups.


D'une part, pour l'ouverture d'une popup:

Si c'est un lien de base, avec l'URL de destination dans l'attribut "href", aucun souci.
J'arrive à récupérer l'adresse du lien cliqué, à l'intérieur de l'événement WebBrowser.Navigating().
Ensuite, il est facile d'ouvrir l'adresse dans une nouvelle form.

Là où ça pique, c'est quand il s'agit d'une popup qui s'ouvre depuis une fonction Javascript, du genre:

[javascript:ma_fonction_qui_ouvre_une_popup(); lien]


Là, c'est impossible de connaître l'URL dans WebBrowser.Navigating(), puisque je récupère "javascript:ma_fonction_qui_ouvre_une_popup();".



D'autre part, pour le maintient de la session à travers les Forms:

En effet, dès que je lance une nouvelle instance d'une Form, les variables des sessions ne sont pas gardées.

Quelqu'un a-t-il réussi à contourner le problème?




Question subsidiaire:

Concrètement, ce que je cherche à faire, c'est un navigateur dépouillé de toute barre d'outil, de barre d'URL, de barre de scroll, etc...
Je veux garder uniquement le cadre de la Form.
Dans le cas présent, j'ai choisi de passer par une Form en VB.NET.
Mais est-il possible de lancer directement un IE "customisé" (en lui passant des paramètres par exemple), pour arriver au même résultat?


Merci beaucoup.



-- message approuvé par Jean-Claude Van Damme --

8 réponses

cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
28 juil. 2010 à 02:58
Bonjour

Si tu as trouvé une solution à ton problème d'URL du POPUP elle m'intéresse car j'ai beau ratissé sur la toile je ne trouve rien alors que pour moi cette information doit être le minimum à fournir par un événement du composant webbrowser

Cdlt


bidouille007
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
28 juil. 2010 à 09:06
Moi aussi ca m'interesse


Ma LV2 c'est le Visual Basic, et toi ?
0
chino18 Messages postés 82 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 1 avril 2011 1
28 juil. 2010 à 16:54
Salut à vous 2.

Si j'ai la solution? ben oui et non...

Non, dans le sens où tout comme vous, je n'ai pas trouvé comment résoudre ces problèmes d'URL et de popup lié à l'objet WebBrowser.

Oui, car j'ai contourné le problème en abandonnant la solution VB.NET. Je passe uniquement par IE: je lance une page de "démarrage" qui va ouvrir une popup avec les caractéristiques désirées (barre d'outil, de barre d'URL, de barre de scroll). Une fois cette popup ouverte, la page de démarrage se ferme.
Il ne me reste alors plus que la popup customisée pour naviguer. Simple mais efficace.

Cependant je ne sais pas si votre objectif était le même que moi... Donc si vous voulez vous accrocher au VB, désolé, je ne peux pas vous aider.

A+

-- message approuvé par Jean-Claude Van Damme --
0
Pr0grammeur Messages postés 13 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 29 août 2010
6 août 2010 à 20:55
Salut,
Il doit être possible d'afficher le code javascript dans le webbrowser et de récupérer le tout via un InnerText. Puis lancer une recherche de lien (http://) afin de récupérer l'url. C'est du bricolage mais si ça fonctionne c'est gagné :)

Sinon il faudrait tenter d'injecter du code javascript afin de faire sortir cette url..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
6 août 2010 à 21:23
en fait la solution si on peut dire ainsi c'est de mettre e.cancel à true dans l'événement new.window et l'url se trouve dans l'événement navigating.

Mais ca ne marche pas pour tout les popups et il me reste un problème, je n'arrive pas à bloquer les messages d'erreurs de script de la page affichée.

bidouille007
0
Pr0grammeur Messages postés 13 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 29 août 2010
6 août 2010 à 22:01
Pour bloquer les messages d'erreur de script il suffit de mettre WebbrowserScriptErrorSupressed = True normalement ça fait l'affaire.
0
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
6 août 2010 à 22:19
c'est déjà fait mais ca bloque pas toutes les fenêtres que IE ouvre lors d'une erreur de script dans la page.


bidouille007
0
Pr0grammeur Messages postés 13 Date d'inscription mardi 23 mars 2010 Statut Membre Dernière intervention 29 août 2010
6 août 2010 à 22:22
C'est bien ce qu'il me semblait. :/

Perso je commence à en avoir ras-le-bol de ce contrôle IE. Et je pense que pour résoudre le tout il faut carrément un autre contrôle webbrowser personnalisé. Par exemple le Geckobrowser que j'ai eu l'occasion de tester, et tout fonctionnait très bien.
0
Rejoignez-nous