Есть ли способ, которым я могу определить, доступен ли мой сайт экземпляром элемента управления веб-браузером? Можно ли идентифицировать его пользовательским агентом w/php? Или, может быть, javascript взломать? Или он на 100% идентичен обычным IE со стороны сервера?Обнаружение элемента управления WebBrowser
ответ
Просто глупая идея, но не могли бы вы просто сравнить window.outerHeight
с window.innerHeight
, измерить ожидаемую разницу для IE, и если это не ее контроль WebBrowser?
Thats hacky as hell, но может работать в большинстве случаев. Есть и другие вещи, которые вы могли бы попытаться сделать, вещи, которые будут работать определенным образом в IE, но, вероятно, не будут работать в WebBrowser Control.
Например:
- загрузить файл
- открывать новое окно/вкладку
Я не вижу, как это может быть надежным. Разница между 'externalHeight' и' innerHeight' зависит от предпочтений пользователя. Отображение или скрытие панели закладок или меню повлияет на разницу. (Я подсчитал 4 легкодоступных параметра в IE, которые влияют на разницу.) Отключение или отключение панели отладки также влияет на нее. Zoom также влияет на него. (Я этого не ожидал, но мы здесь.) Тогда есть такие вещи, как общие настройки пользовательского интерфейса. Использование темы, отличной от значения по умолчанию, может изменить разницу между двумя числами. – Louis
, кажется, что конкретная ошибка возникает, когда что-либо назначается window.external
. Таким образом, проверка может быть чем-то вроде
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
}
}
Это потенциально «разрушительная» проверка. Но я действительно не чувствую, что это вызовет какие-либо проблемы.
- 1. Выполнение скриншотов элемента управления Webbrowser
- 2. Изменение размера элемента управления WebBrowser
- 3. Обнаружение прокрутки вниз в элементе управления WebBrowser
- 4. Обнаружение порта, используемого Webbrowser
- 5. Как извлечь XML из элемента управления WebBrowser?
- 6. Сохранение содержимого элемента управления WebBrowser в HTML
- 7. Открыть файл с помощью элемента управления WebBrowser?
- 8. Silverlight не загружается внутри элемента управления WebBrowser
- 9. Как отправить форму внутри элемента управления WebBrowser?
- 10. WebBrowser элемента управления отличается от IE
- 11. Приложение замораживается при закрытии элемента управления WebBrowser
- 12. Перетаскивание изображений с помощью элемента управления WebBrowser?
- 13. Как установить Content-Type элемента управления Webbrowser?
- 14. Как перемещаться с помощью элемента управления WebBrowser
- 15. Получить правильную высоту страницы элемента управления WebBrowser
- 16. Удаление границы с помощью элемента управления WebBrowser
- 17. Использование другой версии элемента управления WebBrowser
- 18. Изменение пользовательского агента элемента управления WebBrowser
- 19. Остановить перетаскивание из элемента управления WebBrowser WPF
- 20. Как получить URL-адрес элемента управления WebBrowser
- 21. Отключить перетаскивание от элемента управления WebBrowser C#
- 22. Как получить изображение из элемента управления WebBrowser
- 23. Чтение XML из элемента управления WebBrowser
- 24. Размер или высота содержимого элемента управления WebBrowser
- 25. Управление WebBrowser: обнаружение сбоя навигации
- 26. WebBrowser управления
- 27. Как открыть ссылку с одного элемента управления WebBrowser в другом элементе управления WebBrowser?
- 28. Обнаружение конечного родителя элемента управления в Vb.Net
- 29. Windows Forms: обнаружение изменения сфокусированного элемента управления
- 30. Обнаружение фокуса элемента управления в Silverlight
Это _is_ IE. Насколько я знаю, это точно такой же код. –
«Internet Explorer» - это в основном тонкий пользовательский интерфейс вокруг элемента управления веб-браузера. –
В соответствии с [этим ответом] (https://stackoverflow.com/a/4357982/1009922) и [этой более поздней статье] (https://blogs.msdn.microsoft.com/patricka/2015/01/12/control-webbrowser-control-compatible /), элемент управления WebBrowser показывает 'MSIE 7.0' в своей строке пользовательского агента. Я думаю, что это не отличается от реального браузера IE7 или более позднего браузера IE в режиме совместимости версии 7. – ConnorsFan