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

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

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 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