Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

417
Visualizações
¿Por qué CefSharp.PostMessage no funciona en el navegador CefSharp?

Intenté usar el evento JavascriptMessageReceived en C# para manejar CefSharp.PostMessage llamado desde JS dentro del navegador. Incluso descargué un ejemplo de este trabajo desde el enlace . Ejecuté un ejemplo que se suponía que debía hacer exactamente lo que necesitaba, pero no funcionó, ni tampoco mi código (a continuación). ¿CefSharp eliminó esta funcionalidad o la cambió? ¿Necesito habilitar esta característica dentro de CefSettings o ChromiumWebBrowser?

 using CefSharp; using CefSharp.WinForms; public ChromiumWebBrowser chromeBrowser; public Form1() { InitializeComponent(); string curDir = Directory.GetCurrentDirectory(); CefSettings settings = new CefSettings(); Cef.Initialize(settings); chromeBrowser = new ChromiumWebBrowser(String.Format("file:///{0}/HelloWorld.html", curDir)); chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived; } private void ChromeBrowser_JavascriptMessageReceived(object sender, JavascriptMessageReceivedEventArgs e) { MessageBox.Show((string)e.Message); }

HolaMundo.html aquí

 <!DOCTYPE html> <html> <body> <script> CefSharp.PostMessage("Hello world!"); </script> </body> </html>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

  1. CefSharp.PostMessage("Hello world!"); es una extensión JS bastante nueva de 2020. Asegúrese de estar utilizando el CefSharp real.
  2.  chromeBrowser = new ChromiumWebBrowser(String.Format("file:///{0}/HelloWorld.html", curDir)); chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived;
    La suscripción a los eventos JavascriptMessageReceived es demasiado tarde, la página podría descargarse y JS podría ejecutarse en ese momento. Debe suscribirse a los eventos antes de cargar la página.
     chromeBrowser = new ChromiumWebBrowser("about:blank"); chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived; chromeBrowser.Load(String.Format("file:///{0}/HelloWorld.html", curDir));
  3. Asegúrese de que HelloWorld.html exista en el directorio de trabajo actual de la aplicación.
about 4 years ago · Juan Pablo Isaza Relatório

0

¿Dónde está agregando ChromiumWebBrowser al formulario? El control WinForms ChromiumWebBrowser no se cargará hasta que se cree su identificador, lo que ocurre de manera predeterminada cuando se agrega a un elemento primario.

 chromeBrowser = new ChromiumWebBrowser(String.Format("file:///{0}/HelloWorld.html", curDir)); chromeBrowser.JavascriptMessageReceived += ChromeBrowser_JavascriptMessageReceived; Controls.Add(chromeBrowser);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda