Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como llamar a rutina javascript desde webbrowser

Estas en el tema de Como llamar a rutina javascript desde webbrowser en el foro de Visual Basic clásico en Foros del Web. Hola a todos Tengo un control webbrowser en donde necesito llamar a la rutina javascript :__doPostBack('DGOOSS$_ctl2$_ctl0','') Esa parte es la que no se como hacerla. ...
  #1 (permalink)  
Antiguo 10/08/2009, 10:06
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Como llamar a rutina javascript desde webbrowser

Hola a todos

Tengo un control webbrowser en donde necesito llamar a la rutina javascript:__doPostBack('DGOOSS$_ctl2$_ctl0','')

Esa parte es la que no se como hacerla.

Mil gracias
  #2 (permalink)  
Antiguo 11/08/2009, 10:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como llamar a rutina javascript desde webbrowser

Con Navigate usando el protocolo javascript:
Código vb:
Ver original
  1. WebBrowser1.Navigate "javascript:/* código */"
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/08/2009, 10:32
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Como llamar a rutina javascript desde webbrowser

DAvid, gracias. Lo he probado, no da error pero no hace nada
Tal vez me puedas ayudar dandote mas datos
Lo que necesito es hacer click en imagenes\imprimir2.gif de este html

Gracias

</table><table id="PanelOOSS" cellpadding="0" cellspacing="0" border="0" height="159" width="100%"><tr><td>

<DIV style="DISPLAY: inline; WIDTH: 424px; COLOR: darkblue; FONT-FAMILY: Arial; HEIGHT: 49px; TEXT-ALIGN: center"
align="center" ms_positioning="FlowLayout">
<P>Obras Sociales a la que pertenece
</P>
</DIV>
<P>
</P>

<table cellspacing="0" rules="all" bordercolor="LightSteelBlue" border="1" id="DGOOSS" height="8" width="98%">
<tr class="GrillaTitulos">
<td class="GrillaTitulos" width="10%">Código</td><td class="GrillaTitulos" width="50%">Descripción</td><td class="GrillaTitulos" width="30%">Condición</td><td class="GrillaTitulos" width="10%">Situación</td><td><font color="Gray">CODEM</font></td>
</tr><tr class="GrillaDetalle">
<td class="GrillaDetalle">604</td><td class="GrillaDetalle">OBRA SOCIAL DE AGENTES DE LOTERIAS Y AFINES DE LA REPUBLICA ARGENTINA</td><td class="GrillaDetalle">Titular</td><td class="GrillaDetalle">ACTIVO</td><td align="Center"><a href="javascript:__doPostBack('DGOOSS$_ctl2$_ctl0' ,'')"><img src=imagenes\imprimir2.gif border=0></a></td>

</tr>
</table>
  #4 (permalink)  
Antiguo 12/08/2009, 12:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como llamar a rutina javascript desde webbrowser

¿Esto no funciona?:
Código vb:
Ver original
  1. WebBrowser.Navigate "javascript:__doPostBack('DGOOSS$_ctl2$_ctl0' ,'')"
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 12/08/2009, 14:26
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Como llamar a rutina javascript desde webbrowser

Error no da, pero no hace nada.

Lo que yo necesito es que pase a la pagina siguiente. (pense que llamando a esa rutina devolvia algo o avanzaba) pero no hace nada

Si clikeo manualmente en La imagen "imagenes\imprimir2.gif" si avanza y me muestra lo que quiero

Obviamente lo quiero hacer por codigo y no manualmente
Gracias
  #6 (permalink)  
Antiguo 12/08/2009, 16:54
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 19 años
Puntos: 3
Respuesta: Como llamar a rutina javascript desde webbrowser

hola tal como te pase en otro foro puedes ejecutar un script del webbrowser

Código:
Call WebBrowser1.Document.parentWindow.execScript("__doPostBack('DGOOSS$ctl02$ctl00','');", "JavaScript")
pero mira este valor DGOOSS$ctl02$ctl00 si no me equivoco es cambiante, supongo que para que no se pueda automatizar.

lo que puedes hacer es encontrar el valor en el html del documento

Código:
Private Sub Command2_Click()
Dim HTML As String
Dim PosStart As Long
Dim PosEnd As Long
Dim Code As String

HTML = WebBrowser1.Document.body.innerhtml
PosStart = InStr(HTML, "javascript:__doPostBack('")
If PosStart Then
    HTML = Mid(HTML, PosStart + 25)
    PosEnd = InStr(HTML, "'")
    If PosEnd Then
        Code = Left(HTML, PosEnd - 1)
        Call WebBrowser1.Document.parentWindow.execScript("__doPostBack('" & Code & "','');", "JavaScript")
    End If
End If

End Sub
Saludos
__________________
www.leandroascierto.com
  #7 (permalink)  
Antiguo 13/08/2009, 10:38
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Como llamar a rutina javascript desde webbrowser

Si !!! Es correcto como vos decís y funciona a la perfección
El tema estaba en que DGOOSS$ctl02$ctl00 es cambiante.
Ahora funciona de mil maravillas.
Mil gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:31.