IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[cefsharp] comment avoir des pages complètes - seule ma 1é page arrive à l'être.


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 29
    Points
    29
    Par défaut [cefsharp] comment avoir des pages complètes - seule ma 1é page arrive à l'être.
    Bonjour,

    Pour avoir le chargement complet d'une page, j'utilise la séquence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Browser.FrameLoadEnd += FrameLoadEnded
    avec un frameloadended qui a cette tête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            private void FrameLoadEnded(object sender, FrameLoadEndEventArgs e)
            {
                if (e.Frame.IsMain)
                {
                    Browser.GetSourceAsync().ContinueWith(taskHtml => {
                     ....   ;      // ma page est chargée, je l'exploite à ma sauce
                    });
                }
            }
    Ça fonctionne parfaitement sur une 1é page - j'ai un initializeBrowser, trouvé à cette adresse

    http://ourcodeworld.com/articles/rea...ms-application

    Aller directement à la partie 3-1

    Mon problème, c'est que ça ne marche que sur la 1é page chargée.

    Impossible d'avoir un résultat similaire avec une 2é page.
    Il y a probablement un état à retrouver avec le browser CefSharp, pour que FrameLoadEnd puisse se déclencher à nouveau, mais je n'ai pas trouvé quoi.

    Quelqu'un a-t-il surmonté cet écueil ?
    C'est probablement basique de chez basique, mais je ne trouve pas le tuto qui pourrait me faire avancer.

    Merci par avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Bonjour,
    J'ai un autre souci, avec cefSharp, qui est peut-être lié au premier :

    si je tente de récupérer le code source de la page dans un TextBox avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            private void FrameLoadEnded(object sender, FrameLoadEndEventArgs e)
            {
                if (e.Frame.IsMain)
                {
                    //Browser.ViewSource();
                    Browser.GetSourceAsync().ContinueWith(taskHtml => {
                        richTextBox1.Text = taskHtml.Result;
                        exploit0(taskHtml.Result);      //var
                    });
                }
            }
    je récolte un : 'Opération inter-threads non valide*: le contrôle 'richTextBox1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.'

    lors du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    richTextBox1.Text = taskHtml.Result;
    alors que la récolte dans un txt temporaire avec me donne un code source de la page nickel.

    Quelqu'un a déjà été confronté à ce pb ?
    Je n'ai trouvé aucun exemple pour ce genre de manip qui me semble pourtant basique, avec un browser !!

    Merci d'avance pour vos suggestions.

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Le deuxième problème n'a pas de rapport avec le premier.
    Ton message est classique lors de la mise à jour d'un contrôle graphique depuis un autre thread. Sûrement du a GetSourceAsync.

    Recherche ceci dans Google :
    C# update ui another thread

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/06/2012, 16h04
  2. Comment avoir des pages Web cryptées ?
    Par k_boy dans le forum Sécurité
    Réponses: 6
    Dernier message: 03/10/2005, 19h46
  3. Comment avoir des fenêtres parentes et enfants
    Par Invité dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 20/09/2005, 11h53
  4. Comment avoir des information sur une BD?…
    Par kikimnet dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/02/2005, 09h20
  5. Comment avoir des marges dans un TRichEdit ?
    Par nomdutilisateur dans le forum Composants VCL
    Réponses: 5
    Dernier message: 25/06/2004, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo