¿Hay alguna manera de saber si mi sitio está siendo accedido por una instancia del control del webbrowser? ¿Sería posible identificarlo por el agente de usuario w/php? ¿O tal vez algún javascript hackeo? ¿O es 100% idéntico al IE normal desde el lado del servidor?Detectar WebBrowser Control
Respuesta
Solo una idea estúpida, pero ¿no podría simplemente comparar window.outerHeight
con window.innerHeight
, medir la diferencia esperada para IE y si no es así es el control WebBrowser?
Eso es hacky como el infierno, pero podría funcionar en la mayoría de los casos. También hay otras cosas que podría intentar hacer, cosas que funcionarían de cierta manera en IE, pero probablemente no funcionarán en un Control WebBrowser.
Por ejemplo:
- descarga un archivo
- abrir una nueva ventana/pestaña
No veo cómo esto puede ser confiable. La diferencia entre 'outerHeight' y' innerHeight' se ve afectada por las preferencias del usuario. Mostrar u ocultar la barra de marcadores o el menú afectará la diferencia. (Conté cuatro opciones fácilmente accesibles en IE que afectan la diferencia). Tener el panel de depuración abierto o cerrado también lo afecta. Zoom también lo afecta. (No esperaba eso, pero aquí estamos). Luego hay cosas como preferencias generales de UI. Usar un tema diferente al predeterminado puede cambiar la diferencia entre los dos números. – Louis
Parece que un error específico se eleva cuando algo se le asigna a window.external
. Por lo tanto, un cheque podría ser algo así como
const isWebBrowserControl =() => {
try {
window.external = window.external
return false
} catch (error) {
if (error.message === 'I don\'t remember this. Some specific error message.') {
return true
}
}
Esto es una verificación potencialmente "destructiva". Pero realmente no creo que cause ningún problema.
- 1. Detectar WebBrowser página completa cargando
- 2. ¿Puedo detectar errores mientras uso un control .Net WebBrowser?
- 3. Cómo detectar la ejecución de javascript en el control WebBrowser
- 4. BackgroundWorker y WebBrowser Control
- 5. Navegación y control WebBrowser
- 6. C# WebBrowser Control Proxy
- 7. C# WebBrowser Control System.AccessViolationException
- 8. Agregar borde al control WebBrowser
- 9. WPF WebBrowser Control: ¿Qué navegador usa?
- 10. Alternativas al control WebBrowser en WPF?
- 11. Guardar imágenes desde un control WebBrowser
- 12. WPF 3.5 WebBrowser control y ZIndex
- 13. ¿Administrando cookies en un control WPF WebBrowser?
- 14. C# WebBrowser control no aplica css
- 15. Usar imágenes locales en el control Webbrowser
- 16. Tome capturas de pantalla del control WebBrowser
- 17. Caché y el control WebBrowser en .Net
- 18. Windows Forms Control e iframes de WebBrowser
- 19. Javascript keyup/keydown en .NET WebBrowser Control
- 20. Abrir enlace en TAB nueva (control WebBrowser)
- 21. Mostrar un Adorner sobre un control WebBrowser
- 22. IE8, Flash y WinForms WebBrowser Control
- 23. Quitar el borde del control WebBrowser
- 24. Control WebBrowser: ignore los errores SSL
- 25. Cómo inyectar Javascript en el control WebBrowser?
- 26. Control WebBrowser como interfaz de usuario
- 27. Webbrowser Control de accesos directos al robo
- 28. WebBrowser Control en un nuevo hilo
- 29. control WebBrowser en una aplicación web
- 30. Webbrowser, detectar si hay un lector de PDF instalado?
It _is_ IE. Es exactamente el mismo código, que yo sepa. –
"Internet Explorer" es básicamente una interfaz de usuario delgada alrededor del control del navegador web. –
Según [esta respuesta] (https://stackoverflow.com/a/4357982/1009922) y en [este artículo más reciente] (https://blogs.msdn.microsoft.com/patricka/2015/01/12/controlling-webbrowser-control-compatibility /), el control WebBrowser muestra 'MSIE 7.0' en su cadena de agente de usuario. Creo que esto no se distingue de un navegador IE7 real o un navegador IE más reciente en el modo de compatibilidad de la versión 7. – ConnorsFan