Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

416
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda