Accueil > > > ACCÉDER AU CONTENU HTML D'UNE PAGE COMPORTANT DES FRAMES !!! (BIS)
ACCÉDER AU CONTENU HTML D'UNE PAGE COMPORTANT DES FRAMES !!! (BIS)
Information sur la source
Description
Toujours pour Visual Studio 2005 béta... Suite au source laissé, qui comporte le même titre... Cette fois, j'ai trouvé la solution 100% C# et sans utiliser un contrôle supplémentaire de type InetClass (Internet Transfer). Seul le contrôle WebBrowser et le nom de la frame dont on souhaite récupérer le contenu sont nécessaires. Cette solution utilise quand même la DLL COM mshtml.dll et non son pendant .NET. Mais ça marche mieux... Alors voici le code correspondant ! A bientôt.
Source
- // Les using obligatoires pour le code
- using mshtml;
- using System;
- using System.Windows.Forms;
-
- // ...
- // ... déclarations, classes ou tout autre code propres à votre application
- // ...
-
- // Méthode récupérant le document correspondant à une frame souhaitée.
- // Paramètres : wb : Contrôle WebBrowser pour lequel on veut le contenu d'une des frames.
- // nomFrame : nom de la frame dont on veut récupérer le contenu.
- public IHTMLDocument2 recupererDocumentFrame(WebBrowser wb, string nomFrame)
- {
- // Transformer le document du WebBrowser en IHTMLDocument2
- IHTMLDocument2 doc = (IHTMLDocument2)wb.Document.DomDocument;
- if (doc != null)
- {
- IHTMLWindow2 windowFrame = (IHTMLWindow2)doc.frames;
- if (windowFrame != null)
- {
- // Récupération de la collection de frames
- IHTMLFramesCollection2 framescol;
- framescol = windowFrame.frames;
- if (framescol != null)
- {
- string strFrame = nomFrame;
- object objName = (object)strFrame;
- object obj;
- obj = framescol.item(ref objName);
- if (obj != null)
- {
- // Récupération et renvoi du document IHTMLDocument2 de la frame du nom souhaité
- IHTMLWindow2 windowFmain = (IHTMLWindow2)obj;
- IHTMLDocument2 docFmain = WindowFmain.document;
- return docFmain;
- }
- }
- }
- }
- return null;
-
- }
-
- // Méthode récupérant l'élément body d'une frame souhaitée
- // Paramètres : wb : Contrôle WebBrowser pour lequel on veut le contenu d'une des frames.
- // nomFrame : nom de la frame dont on veut récupérer le contenu.
- public IHTMLElement recupererElementFrame(WebBrowser wb, string nomFrame)
- {
- // Récupération du document de la frame souhaité
- IHTMLDocument2 doc = recupererDocumentFrame(wb, nomFrame);
- if (doc != null)
- // Retour du body du document de la frame
- return doc.body;
- return null;
- }
-
- // Méthode de récupération du contenu HTML d'une frame
- public string GetHtml()
- {
-
- string strContenu = "";
-
- // monWebBrowser : nom du contrôle WebBrowser pour lequel on souhaite le contenu d'une des frames
- // nomFrame : nom de la frame pour laquelle on veut le contenu HTML (nom visible quand on affiche la source du code HTML dans le navigateur Internet)
- IHTMLElement elem = recupererElementFrame(monWebBrowser, "nomFrame");
-
- if( elem != null )
- strContenu = elem.innerHTML;
-
- return strContenu;
-
- }
-
- // ...
- // ... suite des déclarations, classes ou tout autre code propres à votre application
- // ...
-
// Les using obligatoires pour le code
using mshtml;
using System;
using System.Windows.Forms;
// ...
// ... déclarations, classes ou tout autre code propres à votre application
// ...
// Méthode récupérant le document correspondant à une frame souhaitée.
// Paramètres : wb : Contrôle WebBrowser pour lequel on veut le contenu d'une des frames.
// nomFrame : nom de la frame dont on veut récupérer le contenu.
public IHTMLDocument2 recupererDocumentFrame(WebBrowser wb, string nomFrame)
{
// Transformer le document du WebBrowser en IHTMLDocument2
IHTMLDocument2 doc = (IHTMLDocument2)wb.Document.DomDocument;
if (doc != null)
{
IHTMLWindow2 windowFrame = (IHTMLWindow2)doc.frames;
if (windowFrame != null)
{
// Récupération de la collection de frames
IHTMLFramesCollection2 framescol;
framescol = windowFrame.frames;
if (framescol != null)
{
string strFrame = nomFrame;
object objName = (object)strFrame;
object obj;
obj = framescol.item(ref objName);
if (obj != null)
{
// Récupération et renvoi du document IHTMLDocument2 de la frame du nom souhaité
IHTMLWindow2 windowFmain = (IHTMLWindow2)obj;
IHTMLDocument2 docFmain = WindowFmain.document;
return docFmain;
}
}
}
}
return null;
}
// Méthode récupérant l'élément body d'une frame souhaitée
// Paramètres : wb : Contrôle WebBrowser pour lequel on veut le contenu d'une des frames.
// nomFrame : nom de la frame dont on veut récupérer le contenu.
public IHTMLElement recupererElementFrame(WebBrowser wb, string nomFrame)
{
// Récupération du document de la frame souhaité
IHTMLDocument2 doc = recupererDocumentFrame(wb, nomFrame);
if (doc != null)
// Retour du body du document de la frame
return doc.body;
return null;
}
// Méthode de récupération du contenu HTML d'une frame
public string GetHtml()
{
string strContenu = "";
// monWebBrowser : nom du contrôle WebBrowser pour lequel on souhaite le contenu d'une des frames
// nomFrame : nom de la frame pour laquelle on veut le contenu HTML (nom visible quand on affiche la source du code HTML dans le navigateur Internet)
IHTMLElement elem = recupererElementFrame(monWebBrowser, "nomFrame");
if( elem != null )
strContenu = elem.innerHTML;
return strContenu;
}
// ...
// ... suite des déclarations, classes ou tout autre code propres à votre application
// ...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Récuperer mail dans une page html [ par Kain13 ]
Bonjour,Comment vérifier si lors d'un traitement d'un formulaire, l'utilisateur a bien mis une adresse mail valide : Pseudo@FAI.comJe sais le faire en
Detaguer une page html et obtenir un simple texte [ par ttornade ]
Bjr la liste,je convertir une page html en format txt. Mon objectif serait de "nétoyer" tout ce qui est script, option *.css ect. Par exple: <html&
problème en DotNet pour rècupèrer le contenu d'une page html complète [ par ttornade ]
Bjr la liste,Existe-t'il un moyen ave les outils .Net de faire la requete HttpWebRequest d'un site(dont la page est construite avec des frames) et rec
savoir le titre d'une page html [ par Fildomen ]
Saluten utilisant le Navigateur Web Microsoft , comment savoir le titre d'une page?http://www.devportail.tk
Récupérer code html page web [ par moihenry ]
Bonjour, quelle est le moyen le plus rapide pour récupérer le code html d'une page web ? MerciC# top!!
Créer une page html avec un editeur de texte format RTF [ par astuces_jeux ]
Bonjour, je cherche comment créer une page de format RTFplus d'info : créer un editeur de texte sur une page HTML avec format RTF (
[application console] lancer une page html [ par engelho ]
Bonjour,Je viens de faire migrer une partire d'un projet. Une page html est devenue une application console. Bien évidement, la fonction "server.
Convertir une page format html en format texte [ par ttornade ]
Bjr le monde,je voudrais developper en C sharp ou visualBun programme qui devra recevoir une page html et restituer en sortie un fichier format texte
afficher une page html [ par Fildomen ]
salutquel composant on utilise si on veut afficher(dans la winform pas appeler l'explorer pour le faire) une page html depuis son adresse?http://www.d
RegEx [ par Bidou ]
Bonjour,J'ai une question pas très compliquée sur les expressions régulières, mais voilà je ne connais pas tellement ce sujet
|
Derniers Blogs
TECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYSTECHDAYS PARIS 2012 : COMMENT SHAREPOINT A SAUVé MES TECHDAYS par ROMELARD Fabrice
Speakers : Lionel Limozin et Alain Marty La session commence par une découverte de SharePoint à travers la mise en place d'un environnement SharePoint pour la gestion des Sessions animées par BeWise. Le besoin est très ba...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0PERSPECTIVE 3.0 POUR SILVERLIGHT 5.0 par odewit
Je viens de publier la version 3.0 de Perspective pour Silverlight, qui regroupe un portage sous Silverlight 5.0 des fonctionnalités de Perspective 2.0, le framework 3D de haut-niveau introduit récemment et de nouveaux exemples de code. En voici la li...
Cliquez pour lire la suite de l'article par odewit TECHDAYS PARIS 2012 : TOP 10 DES BEST PRACTICES POUR SQL SERVERTECHDAYS PARIS 2012 : TOP 10 DES BEST PRACTICES POUR SQL SERVER par ROMELARD Fabrice
Speaker : Nadia Ben El Kadi Configuration machine La session commence par la toute première question à se poser lors de la mise en place d'environnement SQL Server, la configuration des machines : Type de mac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : KINECT + OFFICE 365 UN BON GESTE POUR VOTRE SITECHDAYS PARIS 2012 : KINECT + OFFICE 365 UN BON GESTE POUR VOTRE SI par ROMELARD Fabrice
Speakers : Fabrice Barbin, Samuel Blanchard, Julien Lo Presti Titre Prometteur et attractif invitant à voir comment lier le composant ludique Kinect dans le cadre d'une structure IT classique, notamment au travers de la plat...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE DU PREMIER JOURTECHDAYS PARIS 2012 : PLEINIèRE DU PREMIER JOUR par ROMELARD Fabrice
KeyNotes du premier jour pour les développeurs. La session est principalement axée sur une des principales directions prise par Microsoft à travers tous ses nouveaux produits : Cloud privé ou public (Solution Azure) ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|