- // 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
// ...