Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

431
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!