Salut à tous!
J'utilise un webbrowser dans une application pour naviguer sur un site web.
Le problème, c'est que je ne peux pas charger directement les pages du site, car celles-ci attendent obligatoirement que le document chargé ait au moins 2 frames!
Je me suis donc dit que j'allais charger dans mon WebBrowser un code html local, qui créer 2 frames, puis utiliser une fonction de navigation 'faite maison' qui me charge le lien dans une frame ciblée.
Exemple:
Le code ci-dessus me créer bien deux frames dans mon composant WebBrowser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 procedure TForm2.FormCreate(Sender: TObject); var Flags, TargetFrameName, PostData, Headers: OleVariant; sHTML: String; begin // Create frames into webbrowser sHTML := '<html><frameset cols="1%,99%"><frame src="" name="menu"><frame src="" name="main"></frameset></html>'; form2.WB.Navigate('about:' + sHTML, Flags, TargetFrameName, PostData, Headers); end;
Ensuite, je voulais faire ça:
Le problème c'est que l'appli me lance internet explorer au lieu de charger le fichier html dans la frame 'main' que j'ai créée dans l'événemment OnCreate
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm2.Button1Click(Sender: TObject); var Flags, TargetFrameName, PostData, Headers: OleVariant; sHTML: String; test: integer; begin TargetFrameName := 'main'; Form2.WB.Navigate('c:\test.htm', Flags, TargetFrameName, PostData, Headers); end;
J'ai fouillé sur le net, mais je n'ai pas trouvé un seul exemple qui utilise le OleVariant TargetFrameName, alors un peu d'aide serait la bienvenue!
Partager