Recoger enlaces desde web browser

27/06/2006 - 09:37 por skondio | Informe spam
Estoy haciendo un nuevo programa con Forms, y he incluido el control
web browser (COM) en el formulario principal. Lo que quiero es mostrar
una página HTML local, que haga de menú principal, y recoger las
pulsaciones sobre los enlaces de dicho menú, como por ejemplo:

Si tengo en la página una opción que sea: <a
href='#FrmClientes'>Clientes</a>, cuando se pulse el enlace, recoja de
alguna manera #FrmClientes, para poder iniciar el formulario de
Clientes, y así con otras opciones.

Alguien tiene alguna idea de como recoger esta información o algún
ejemplo, página, etc, he estado buscando y no he encontrado nada.
Soy un poco nuevo y necesito vuestra ayuda, gracias.

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
27/06/2006 - 10:56 | Informe spam
Hola "Skondio",

Sólo tienes que usar el argumento «URL» del evento «BeforeNavigate2» del control WebBrowser, estableciendo Cancel = True (para que no se lleve a cabo la navegación en caso de tratarse de una URL "privada" de tu aplicación) y parseando «URL» para obtener el formulario de tu aplicación a mostrar

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 skondio
29/06/2006 - 12:08 | Informe spam
Gracias... era lo que necesitaba... no conseguia hacerlo.

Otra pregunta... se puede mostrar una página que no exista
fisicamente, sino que yo la genere en tiempo de ejecución y
asignarselo al control WebBrowser dinámicamente, como con el Navigate,
pero un string con la página generada en memoria.

Rubén Vigón ha escrito:

Hola "Skondio",

Sólo tienes que usar el argumento «URL» del evento «BeforeNavigate2» del control WebBrowser, estableciendo Cancel = True (para que no se lleve a cabo la navegación en caso de tratarse de una URL "privada" de tu aplicación) y parseando «URL» para obtener el formulario de tu aplicación a mostrar

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#3 Rubén Vigón
29/06/2006 - 12:35 | Informe spam
Claro! Tienes varias opciones:

1) Usar el protocolo «about:» (sólo te aconsejo esta opción si la página a mostrar es bastante sencilla); por ejemplo:

Me.WebBrowser1.Navigate "about:<body>Hola&nbsp;mundo!</body>"

2) Establecer el código HTML del objeto «Body» mediante «innerHtml»; por ejemplo:

Me.WebBrowser1.Navigate "about:blank"
Me.WebBrowser1.Document.Body.innerHtml = "<center><b>Hola&nbsp;mundo!</b></center>"

3) Usar el protocolo «res://» para navegar a una página almacenada en el archivo de recursos del ensamblado (esta es la solución que yo suelo usar en mis aplicaciones). Puedes ver ésto en funcionamiento abriendo http://www.google.noexiste en Internet Explorer: al no existir dicha página, IE mostrará la página res://C:\WINDOWS\system32\shdoclc.dll/dnserror.htm (página DNSERROR.HTM almacenada en el archivo de recursos de SHDOCLC.DLL)

4) Combinar las soluciones 3 y 2 (esta es, en realidad, la solución que uso en mis aplicaciones): navegar mediante el protocolo «res://» a una página HTM almacenada en tu ensamblado y modificarla en tiempo de ejecución mediante «Document.Body.innerHtml»

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP VB]
29/06/2006 - 16:41 | Informe spam
1) Usar el protocolo «about:» (sólo te aconsejo esta opción si la
página a mostrar es bastante sencilla); por ejemplo:



Ahora tengo el IE7 y en esta version eso no funciona y creo que en el IE6
tampoco.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#5 Rubén Vigón
29/06/2006 - 17:22 | Informe spam
Ésto me llamó la atención hace algún tiempo: en mi Internet Explorer 6.0.2900.2180 bajo Windows XP SP2 no funciona si introduzco directamente [about:<body>Hola&nbsp;mundo!</body>] en la barra de direcciones. Sin embargo, desde un proyecto de Visual Basic con un control «WebBrowser», funciona correctamente. Supongo que habrá sido algún parche de seguridad... ¿sigue ocurriendo ésto en IE7, Eduardo?

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida