Accueil > > > ACCÉDER AU CONTENU HTML D'UNE PAGE COMPORTANT DES FRAMES
ACCÉDER AU CONTENU HTML D'UNE PAGE COMPORTANT DES FRAMES
Information sur la source
Description
Pour Visual Studio 2005 Beta... Dans une application Windows Forms, avec un contrôle WebBrowser (anciennement AxWebBrowser1), ce petit bout de code permet de récupérer le code HTML de pages qui comportent des Frames. Le contrôle WebBrowser ne permet pas de faire cette opération, ou alors je n'ai pas réussi à trouver la bonne manip'... J'ai donc utilisé, en parallèle, un objet de type InetClass (Internet Transfer). A voir si c'est applicable dans les versions moins récentes de Visual C#.
Source
using InetCtlsObjects;
using mshtml;
using System;
using System.Windows.Forms;
namespace MonEspaceDeNom
{
public class FenetreWebBrowser : System.Windows.Forms.Form
{
// Attributs privés
private string url;
private string strFrame;
private InetClass monInet;
// Généré par Visual Studio 2005 Beta
private WebBrowser monWebBrowser;
// private AxWebBrowser1 monAxWebBrowser1 pour les versions précédentes
private System.ComponentModel.IContainer components;
public FenetreWebBrowser()
{
//
// Requis pour la prise en charge du Concepteur Windows Forms
//
InitializeComponent();
//
// TODO : ajoutez le code du constructeur après l'appel à InitializeComponent
//
monInet = new InetClass();
monInet.AccessType = AccessConstants.icDirect;
monInet.Protocol = ProtocolConstants.icHTTP;
// Supprime les messages d'erreur de scripts...
monWebBrowser.ScriptErrorsSuppressed = true;
// monAxWebBrowser1.Silent = true pour les versions antérieures
}
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.monWebBrowser = new System.Windows.Forms.WebBrowser();
this.SuspendLayout();
//
// monWebBrowser
//
this.monWebBrowser.Location = new System.Drawing.Point(0, -2);
this.monWebBrowser.Name = "monWebBrowser";
this.monWebBrowser.Size = new System.Drawing.Size(843, 645);
this.monWebBrowser.TabIndex = 1;
this.monWebBrowser.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.monWebBrowser _Navigating);
//
// FenetreWebBrowser
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(844, 644);
this.Controls.Add(this.monWebBrowser);
this.Load += new System.EventHandler(this.FenetreWebBrowser_Load);
this.Name = "FenetreWebBrowser";
this.Text = "FenetreWebBrowser";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run( new FenetreWebBrowser() );
}
private void DistriGameWB_Load(object sender, System.EventArgs e)
{
// Variables inutiles dans la version 2005, mais indispensables dans les versions antérieures
object o = url;
object param = System.Reflection.Missing.Value;
// Connection au site
url = "http://www.un_site_avec_des_frames.com/";
monBrowser.Navigate( url );
// monAxWebBrowser1.navigate( ref o, ref param ) pour les versions précédentes
}
private void monWebBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
if (e.TargetFrameName == "NomDeLaFramePourLaquelleOnSouhaiteAvoirLeContenu")
{
strFrame = (string)monInet.OpenURL( e.Url, DataTypeConstants.icString );
}
}
}
}
Conclusion
En espérant que ce code vous aidera.
Ca fait plusieurs semaines (voire mois) que je cherche sur tous les forums une solution 100% C#. A défaut, j'avais utilisé VB6 pour faire ce petit bout de code (car VB6 permet d'accéder au innerHTML des frames). Sans succès.
En désespoir de cause, j'ai essayé cette solution... Ca a l'air de fonctionner, tout au moins pour mes propres besoins. Quelques adaptations seront peut-être nécessaires pour vous...
Dans le code ci-dessus, la navigation se fait sur l'événement Load de la fenêtre. Il est bien sûr possible de le déporter sur clic d'un bouton, ou tout autre méthode.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Listview et base de donnée [ par fredza ]
Salut,En C# est-il possible de remplir une listview (en mode détail avec le contenu d'une base de donnée) si oui comment ?Ma base est constituée de pl
Afficher le contenu d'un fichier texte ??? [ par CoChOnOu ]
Salut à tousBon voilà, je débute vraiment avec le C# alors ne m'en voulez pas si ma question vous semble ridicule ;-)Voilà, j'ai ajouté un fichier .tx
Mise à jour frame à partir d'une autre frame [ par decan ]
Bonjour,je souhaite mettre à jour une frame à partir des infos que je viens de sélectionner dans une autre frame.exemple : sélection d'une valeur dans
Récupérer le contenu d'une page sous forme de string [ par ttornade ]
Bjr tout le monde,je voudrais récupérer le contenu d'une page(par exemple télécharger une page html) et l'assigner à une variable de type string. Il y
Text Field ... [ par maevacmoi ]
Hello !Je voudrais afficher le contenu d'un fichier dans un textBox, en donnant la possibilité à l'utilisateur d'indiquer la source. J'ai fait des ess
Récupération du contenu d'un site [ par ttornade ]
Bjr tout le monde,je voudrais savoir s'il existe des objects en c# qui me permettent de rècupérer le contenu d'une page html à l'intérieur des frames
[C#]Afficher contenu d'une variable dans une méthode static [ par jacma ]
BonjourJe déclare une variable "private string strConn" au niveau de la classe 'j'ai aussi esayé public ou même rien), mais je ne peux pas en récupére
imprimer le contenu d'un fichier xml [ par creanova2000 ]
creanovabonjour je voudrai savoir comment je peux imprimer le contenu d'un fichier xmls'il vous plair est ce que vous pouver me donner un exemple.merc
[C#] export du contenu d'un dataset vers un fichier texte [ par Michel0911 ]
Bonjour,Comment faire pour pour lire chaque enregistrement d'un dataset et l'exporter vers un fichier texte ?Merci pour votre aide.Michel
Passer le contenu d'une va d'un form à un autre [ par jeanajaccio ]
salut à tous,Qq'un peut me dire ct passer le contenu d'une va d'un formulaire à l'autre ?Merci
|
Derniers Blogs
[TECHDAYS2012] OUI J'Y SERAI![TECHDAYS2012] OUI J'Y SERAI! par JeremyJeanson
Bonsoir, Certes, je l'annonce avec un peu de retard, mais je serai effectivement au Techdays demain. Comme l'an dernier, je participerai au programme ATE (Ask The Expert). Si vous avez des questions Workflow, WCF, AppFabric ou plus généralement .net, n'hé...
Cliquez pour lire la suite de l'article par JeremyJeanson TFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICESTFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICES par vfabing
Afin de s'assurer du bon fonctionnement des différentes synchronisations effectuées par les TFS Integration Tools, 2 rapports sont présents dès l'installation. Il suffit alors d'effectuer les manipulations suivantes pour pouvoir les visualiser : Loca...
Cliquez pour lire la suite de l'article par vfabing CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks
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
|