Tengo un control WebBrowser
en mi aplicación C#. El webbrowser está bajo el control del usuario, es decir, puede cargar cualquier página web a la que su computadora pueda acceder en la web (por supuesto, limitada por proxy, archivo de hosts, etc.).Cómo detectar la ejecución de javascript en el control WebBrowser
Necesito saber y ser notificado cuando hay una llamada javascript dentro de la página cargada en el componente webbrowser.
Primer ejemplo: dado un enlace como este
<a href="javascript:void(0)" onclick="jsFunct();">test</a>
Cuando el usuario hace clic en el enlace que necesito saber que la función "jsFunct" ha sido llamado.
Segundo ejemplo: dada una llamada como
<script type="text/javascript">
window.setTimeout("jsFunct()", 1000);
</script>
Necesito saber que, 1 segundo después de la ejecución del script, la función jsFunct ha sido llamado.
Lo mejor sería tener un evento disparado cuando se llama a la función. También sería genial si el evento pudiera obtener el código de JavaScript ejecutado, o al menos el nombre de la función en los argumentos.
EDIT:
Incluso si la pregunta está relacionada con el componente de navegador web, lo que permite al usuario detectar Javascript activación (incluso a través de JS) estaría bien, ser capaz de inyectar un js que controla el evento javascript y lo pasa al control wb activando algún evento que pueda manejar.
Por el momento no tengo mucho tiempo para probar esto, ¿podría explicar cómo puedo detectar una llamada a una función js específica en la página web con 'window.external'? También se apreciaría un pequeño ejemplo de código – Gabber
actualizado, agregué el JS relevante y, con suerte, la solución completa. – Jeff
Todo lo que necesitaba, realmente feliz de premiar la recompensa y resolver este problema, ¡gracias! – Gabber