Y at-il un moyen de savoir si mon site est accédé par une instance de contrôle webbrowser? Serait-il possible de l'identifier par l'agent utilisateur w/php? Ou peut-être un peu de javascript? Ou est-ce 100% identique à l'IE ordinaire du côté du serveur?Détecter le contrôle WebBrowser
Répondre
Juste une idée stupide, mais ne pourriez-vous pas simplement comparer window.outerHeight
avec window.innerHeight
, mesurer la différence attendue pour IE et si ce n'est pas alors le WebBrowser Control?
Cest hacky comme l'enfer, mais pourrait fonctionner dans la plupart des cas. Il y a aussi d'autres choses que vous pourriez essayer de faire, des choses qui fonctionneraient d'une certaine manière dans IE mais qui ne fonctionneraient probablement pas dans un contrôle WebBrowser.
Par exemple:
- télécharger un fichier
- ouvrir une nouvelle fenêtre/onglet
Je ne vois pas comment cela peut être fiable. La différence entre 'outerHeight' et' innerHeight' est affectée par les préférences de l'utilisateur. Afficher ou masquer la barre de favoris ou le menu affectera la différence. (J'ai compté 4 options facilement accessibles dans IE qui affectent la différence.) Avoir le panneau de débogage ouvert ou fermé l'affecte également. Le zoom l'affecte aussi. (Je ne m'attendais pas à cela, mais nous y sommes.) Ensuite, il y a des choses comme les préférences générales de l'interface utilisateur. L'utilisation d'un thème différent de la valeur par défaut peut changer la différence entre les deux nombres. – Louis
Il semble qu'une erreur spécifique est déclenché lorsque tout est affecté à window.external
. Donc, une vérification pourrait être quelque chose comme
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
}
}
Ceci est un contrôle potentiellement "destructif", cependant. Mais je ne pense vraiment pas que cela causerait un problème.
- 1. Contrôle de Webbrowser, Détecter la connexion Internet
- 2. Problème avec le contrôle WebBrowser
- 3. Rechercher dans le contrôle WebBrowser
- 4. Contrôle Silverlight webbrowser
- 5. Alternative au contrôle Webbrowser
- 6. IE8, Flash et le contrôle WinForms WebBrowser
- 7. XSLT "dynamique" pour alimenter le contrôle webbrowser?
- 8. Comment utiliser watin avec le contrôle WebBrowser?
- 9. Comment masquer HtmlElement dans le contrôle webbrowser
- 10. Rechercher du texte dans le contrôle webbrowser
- 11. Cookies persistants dans le contrôle WPF WebBrowser?
- 12. Empêcher le contrôle WebBrowser d'avaler des exceptions
- 13. Le contrôle WebBrowser échoue sur Vista
- 14. Modifier la page rendue dans le contrôle Webbrowser
- 15. Le contrôle C# WebBrowser ne déclenche pas l'événement DocumentCompleted
- 16. Automatisation du contrôle .NET webbrowser
- 17. contrôle webbrowser multiple, cookies séparés?
- 18. Générer Screenshot De WebBrowser contrôle
- 19. Contrôle WebBrowser Annuler/Rétablir question
- 20. Comment gérer le rendu HTML dans le contrôle WebBrowser?
- 21. obtenir le titre du site actif dans le contrôle WebBrowser
- 22. Afficher le message électronique dans le contrôle WebBrowser
- 23. Comment puis-je détecter lorsqu'une case à cocher a été sélectionnée dans un contrôle WebBrowser?
- 24. Contrôle WEBBrowser; Est-il possible de sauvegarder le contenu Webbrowser dans une base de données SQL?
- 25. Désactiver Flash ou d'autres plugins dans le contrôle .NET WebBrowser
- 26. Appel d'une fonction Javascript dans le contrôle C# webBrowser
- 27. Le contrôle WebBrowser n'imprimera pas à partir de C#
- 28. C# .NET Comment afficher une image sur le contrôle WebBrowser?
- 29. C# Le contrôle WebBrowser ne s'applique pas css
- 30. Définir les événements JavaScript dans le contrôle WebBrowser
C'est IE. C'est exactement le même code, pour autant que je sache. –
"Internet Explorer" est essentiellement une interface utilisateur fine autour du contrôle du navigateur Web. –
Selon [cette réponse] (https://stackoverflow.com/a/4357982/1009922) et [cet article plus récent] (https://blogs.msdn.microsoft.com/patricka/2015/01/12/control-webbrowser-control-compatibility /), le contrôle WebBrowser montre 'MSIE 7.0' dans sa chaîne user-agent. Je pense que cela ne se distingue pas d'un navigateur IE7 réel ou un navigateur IE plus récent en mode de compatibilité version 7. – ConnorsFan