Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Détecter chargement de page CefSharp

    29 juin 2019 à 12:14:47

    Bonjour,

    Je suis en train de créer un logiciel avec CefSharp 73.1.130 (Le WebBrowser built-in ne me permettait pas de faire tout ce que je voulais) et j'ai besoin de détecter quand une page est chargée, ou détecter un changement d'URL si cela est possible, ce serait même encore mieux.

    J'ai déjà essayé beaucoup de choses (à vrai dire tout ce que j'ai trouvé en cherchant sur internet mais rien n'a fonctionné) tels que :

    browser.RenderProcessMessageHandler = new RenderProcessMessageHandler();
    
    public class RenderProcessMessageHandler: IRenderProcessMessageHandler {
        // Wait for the underlying `Javascript Context` to be created, this is only     called for the main frame.
        // If the page has no javascript, no context will be created.
        void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame) {
            const string script = "document.addEventListener('DOMContentLoaded', function(){ alert('DomLoaded'); });";
    
            frame.ExecuteJavaScriptAsync(script);
        }
    }
    
    //Wait for the page to finish loading (all resources will have been loaded,     rendering is likely still happening)
    browser.LoadingStateChanged += (sender, args) => {
        //Wait for the Page to finish loading
        if (args.IsLoading == false) {
            browser.ExecuteJavaScriptAsync("alert('All Resources Have Loaded');");
        }
    }

    ou encore :

        browser.LoadingStateChanged += OnLoadingStateChanged;
    private void OnLoadingStateChanged(object sender, LoadingStateChangedEventArgs args) {
        if (!args.IsLoading) {
            // Page has finished loading, do whatever you want here
        }
    }

    Mais je ne suis pas sur de comment les utiliser correctement, parce que j'obtiens a chaque fois des erreurs tels que "The name does not exist in the current context".

    Voila mon code CefSharp pour le moment :

    private void InitializeChromium()
            {
                CefSettings settings = new CefSettings();
                Cef.Initialize(settings);
                browser = new CefSharp.WinForms.ChromiumWebBrowser("https://supremenewyork.com/shop/all");
                browser.Dock = DockStyle.Fill;
    
                this.wb_panel.Controls.Add(browser);
            }

    Merci d'avance pour l'aide !

    • Partager sur Facebook
    • Partager sur Twitter

    [C#] Détecter chargement de page CefSharp

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown