Foros del Web » Programación para mayores de 30 ;) » .NET »

Llamar a Javascript desde WebBrowser

Estas en el tema de Llamar a Javascript desde WebBrowser en el foro de .NET en Foros del Web. Bueno, quería ver si me podrían ayudar. Lo que quiero hacer es llamar a una función javascript desde el webbrowser de mi aplicación. El código ...
  #1 (permalink)  
Antiguo 23/12/2008, 17:01
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
Llamar a Javascript desde WebBrowser

Bueno, quería ver si me podrían ayudar.

Lo que quiero hacer es llamar a una función javascript desde el webbrowser de mi aplicación.

El código javascript se ejecuta cuando se apreta en un botón, que tiene la siguiente interfaz:



El botón de Reset NOW es.

Quiero que cuando se aprete ahí, se ejecute la siguiente instrucción:

javascript:void(0)

He mirado el código fuente, y busqué Reset NOW, y me aparece la siguiente linea.

<td align="center" width="80"><span class="medium_link"><a href="javascript:void(0)" OnClick="ask_url('Are you sure?\n - Reset character SainT','Fusion S4-Characters-Reset-4409.html')">RESET NOW!</a></span></td>

No quiero que me den soluciones como por ejemplo:

"Hace que cuando se aprete tal botón redireccione a esa web"

No, porque el ID que aparece al último, es diferente para cada personaje.

Salu2
  #2 (permalink)  
Antiguo 26/12/2008, 16:00
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Llamar a Javascript desde WebBrowser

Hola.
Una de las formas que podes ejecutar javascript del webbrowser es algo como webBrowser2.navigateto("javascipt:lafuncion()")

Por lo que veo en el html ahí en el enlace el evento onClick llama la función ask_url por lo que deberías ver que hace, que por los parametros que recibe y el nombre debe abrir una página.
Suerte
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #3 (permalink)  
Antiguo 26/12/2008, 18:33
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
Respuesta: Llamar a Javascript desde WebBrowser

Bueno, te comento.

Cuando yo hago click en el botón RESET NOW, me aparecen dos opciones. Aceptar o Cancelar.

Como hago para autoseleccionar la opción aceptar?

Salu2

PD: Olvidé decir, las opciones me aparecen de la siguiente forma:

  #4 (permalink)  
Antiguo 27/12/2008, 07:14
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Llamar a Javascript desde WebBrowser

Hola.
Para mi lo mejor es que investigues el codigo fuente de la página y veas que es lo que está haciendo ask_url para que lo invoques directamente y no tengas que luchar con el click del botón.

De todos modos, acá podes ver varias formas que tenes de simular el click de un boton:
http://www.csharpfriends.com/Forums/...x?PostID=41764

Fijate que la idea es encontrar el elemento del webbrowser y luego instanciar el objeto y ejectuar el click

Luego vas a tener el problema que al ejecutar el click te va aparecer el alert para que selecciones aceptar o cancelar. Aca vas a tener que investigar el uso de System.Windows.Forms.SendKeys.Send que te permite simular presionar una tecla, en tu caso sería algo como System.Windows.Forms.SendKeys.Send("{ENTER}")
Mas detalle de SendKeys:
http://msdn.microsoft.com/en-us/libr...keys.send.aspx

Suerte
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #5 (permalink)  
Antiguo 27/12/2008, 10:51
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
Respuesta: Llamar a Javascript desde WebBrowser

Perdón por volver.

Pero tengo un problema.

Digamos, yo al personaje lo puedo resetear.

Pero siempre y cuando el personaje concuerde con el ID.

Por ejemplo, si yo pongo este código:

Cita:
OnClick="ask_url('Are you sure?\n - Reset character SainT','Fusion S4-Characters-Reset-4409.html')">RESET NOW!</a></span></td>
Pero me logueo con otro personaje, será imposible, ya que el id 4409 no concuerda con este personaje.

En cambio, si intento resetear con SainT con ése código, si se puede.

Entonces, lo que necesito saber, es cómo obtener ese ID :S

Eh buscado en el código fuente, y me aparece ese código distinto por cada personaje. Yo he pensado en recorrer un bucle, desde el 4000 hasta el 5000 (Supongo que será el rango de personajes), y llamar a la función ASK, hasta que en alguna ocasión la web funque.

Pero tampoco se como hacerlo :S

Salu2 y mil disculpas por las preguntas.
  #6 (permalink)  
Antiguo 28/12/2008, 09:44
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Llamar a Javascript desde WebBrowser

Hola.
Fijate por la dudas si el ID no lo está guardando en una caja de texto del tipo hidden.

Sino, lo que podes hacer es buscar la cadena Fusion S4-Characters-Reset-4409.html y empezar a tratarla para sacarle el id.

Esto tenes varias formas de hacerlo. Si siempre se repite "Fusion S4-Characters-Reset-" entonces podrías buscar la posición de esa cadena por medio de IndexOf() y luego ir moviendote hasta que llegues a "Reset-" y alii empiesas a guardar el número hasta que llegues a ".html"
Esa es una de las formas que tenes de obtener ese número de esa cadena de texto. Proba investigar el uso de IndexOf para poder rastrear esa cadena.
Cualqueir duda avisa.
Suerte.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
  #7 (permalink)  
Antiguo 28/12/2008, 11:55
 
Fecha de Ingreso: abril-2008
Ubicación: Córdoba
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
Respuesta: Llamar a Javascript desde WebBrowser

Gracias por tu respuesta amigo.

Resulta que he visto la propiedad IndexOf a fondo, pero la verdad que me sirvió mas LastIndexOf.

Usé la propiedad LastIndexOf, y la posición del primer número del ID, es 22662.

Ahora pregunto, si yo quiero saber la posición del caracter 22662, 22663, 22664, y 22665, como hágo?

Lo único que tengo para decir, es que gracias por todas tus respuestas.

Un saludo, y de nuevo, muchísimas gracias.

PD:

Edito para decir que ya obtuve el ID. Lo que hice fué lo siguiente:

Primero, usé LastIndexOf, leyendo el código fuente, para que me devuelva la posición del primer numero del ID

Cita:
Iniciado por Código
MsgBox(WebBrowser1.DocumentText.LastIndexOf("4409" ))
Esto me devolvió la posición del primer número de ID, que fue igual a 22662.

De aquí hice un SubString, e hice que desde esa posición, recorra 4 carácteres hacia delante. Me devolvió como resultado los 4 carácteres de ID.

Cita:
Iniciado por Código 2
MsgBox(WebBrowser1.DocumentText.Substring(22662, 4))
Posteo esto para el que quiera hacer lo mismo desde un código fuente.

Saludos, y muchas gracias.

Fekaa :)

Última edición por emma93; 28/12/2008 a las 12:03
  #8 (permalink)  
Antiguo 28/12/2008, 13:16
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Llamar a Javascript desde WebBrowser

no te compliques tanto usa una expresion regular para poder extraer los id's de la pagina solo fijate en el patron que siguen y listo.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #9 (permalink)  
Antiguo 28/12/2008, 14:28
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Llamar a Javascript desde WebBrowser

Sip, tambien como dice el amigo peter podes usar expresiones regulares. De nada lo de ayudarte, es una alegria. Si te quedan dudas segui preguntando.
Nos vemos!!!!
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
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 03:22.