Comment : accéder au modèle objet de document HTML managé
Vous pouvez accéder au modèle DOM (Document Object Model) HTML managé à partir de deux types d'applications :
Application Windows Forms (.exe) hébergeant le contrôle WebBrowser managé. Ces deux technologies se complètent mutuellement (le contrôle WebBrowser affiche la page pour l'utilisateur et le modèle DOM HTML représente la structure logique du document).
UserControl Windows Forms hébergé dans Internet Explorer. Vous pouvez accéder au modèle DOM HTML qui représente la page sur laquelle votre UserControl est hébergé pour modifier la structure du document ou ouvrir des boîtes de dialogue modales, parmi de nombreuses autres possibilités.
Pour accéder au modèle DOM à partir d'une application Windows Forms
Hébergez un contrôle WebBrowser dans votre application Windows Forms et surveillez l'événement DocumentCompleted. Pour plus d'informations sur l'hébergement de contrôles et la surveillance d'événements, consultez Consommation d'événements.
Récupérez le HtmlDocument pour la page actuelle en accédant à la propriété Document du contrôle WebBrowser.
Pour accéder au modèle DOM à partir d'un UserControl hébergé dans Internet Explorer
Créez votre propre classe personnalisée dérivée de la classe UserControl. Pour plus d'informations, consultez Comment : créer des contrôles composites.
Placez le code suivant dans votre gestionnaire d'événements Load pour UserControl :
Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (Me.Site IsNot Nothing) Then
Dim Doc As HtmlDocument = CType(Me.Site.GetService(Type.GetType("System.Windows.Forms.HtmlDocument")), HtmlDocument)
End If
End Sub
HtmlDocument doc = null;
private void UserControl1_Load(object sender, EventArgs e)
{
if (this.Site != null)
{
doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
}
}
Programmation fiable
- Lors de l'utilisation du modèle DOM via le contrôle WebBrowser, vous devez attendre systématiquement que l'événement DocumentCompleted se produise avant de tenter d'accéder à la propriété Document du contrôle WebBrowser. L'événement DocumentCompleted est déclenché une fois que le document entier a été chargé. Si vous utilisez le modèle DOM avant, cela risque de provoquer une exception runtime dans votre application.
Sécurité
- Votre application ou UserControl requiert la confiance totale pour l'accès au modèle DOM HTML managé. Si vous déployez une application Windows Forms à l'aide ClickOnce, vous pouvez demander une confiance totale à l'aide des options d'élévation d'autorisations ou de déploiement d'application approuvée ; pour plus d'informations, consultez Sécurisation des applications ClickOnce.