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

482
Views
cómo detectar y abrir un enlace en una nueva pestaña/ventana/winform en DotNetBrowser

Uso DotNetBrowser y quiero abrir el enlace en una nueva ventana/winform/pestaña cuando hago clic en el enlace; sin embargo, cuando hacemos clic en cualquier enlace , DotNetBrowser los abre en la ventana actual. Sé que debo anular los eventos de DotNetBrowser , pero no sé qué evento. intente con CreatePopupHandler y no funciona, tampoco puedo encontrar ningún DotNetBrowser de muestra en ningún lado, espero que puedan ayudarme.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El controlador CreatePopupHandler se invoca cuando el motor desea saber si se puede crear una ventana emergente o no. Básicamente, puede usarlo para permitir o suprimir la creación de ventanas emergentes en general.

Si el controlador CreatePopupHandler permite crear una ventana emergente, se invoca el controlador OpenPopupHandler . En este controlador, puede acceder a la ventana emergente creada y mostrarla si es necesario.

Cuando inicializa un WinForms BrowserView , configura automáticamente la instancia de IBrowser dada con la implementación predeterminada de los CreatePopupHandler y OpenPopupHandler .

En este caso, hay dos escenarios cuando los enlaces se abren en una nueva ventana (emergente):

  1. La función JavaScript window.open() :
 window.open("https://www.google.com", "_blank", "resizable=yes, top=500, left=500, width=400, height=400");
  1. Un enlace con el atributo de target :
 <a href="https://www.google.com" target="_blank">Open Google</a>

Para cargar cualquier URL en una ventana o pestaña separada en un intento de navegación (por ejemplo, hacer clic en un enlace), deberá interceptar todas las solicitudes de navegación o las requeridas mediante StartNavigationHandler . En la implementación del controlador, debe crear una nueva ventana o pestaña con el navegador, cargar esta URL en ella y cancelar su carga en el navegador original. Por ejemplo:

 browser.Navigation.StartNavigationHandler = new Handler<StartNavigationParameters, StartNavigationResponse>((p) => { // Intercept all navigation requests to the URLs that start // with "https://dotnetbrowser" and load them into a new form if (p.Url.StartsWith("https://dotnetbrowser")) { BeginInvoke((Action)(() => { LoadNewWindow(p.Url); })); return StartNavigationResponse.Ignore(); } return StartNavigationResponse.Start(); }); browser?.Navigation.LoadUrl("https://teamdev.com/dotnetbrowser");

La implementación LoadNewWindow :

 private void LoadNewWindow(string url) { var browser1 = engine.CreateBrowser(); BrowserView browserView = new BrowserView { Dock = DockStyle.Fill }; browserView.InitializeFrom(browser1); Form form = new Form(); form.Width = 800; form.Height = 600; form.Closed += delegate { form.Controls.Clear(); if (!browser1.IsDisposed) { browser1.Dispose(); } }; form.Controls.Add(browserView); form.Show(); browser1.Navigation.LoadUrl(url); }
over 4 years ago · Santiago Trujillo 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!