Есть ли способ узнать, обращается ли к моему сайту экземпляр управления веб-браузером? Можно ли идентифицировать его с помощью пользовательского агента w/php? Или, может быть, какой-нибудь javascript-хак? Или он на 100% идентичен обычному IE со стороны сервера?
Обнаружение управления веб-браузером
Ответы (2)
Кажется, что возникает конкретная ошибка, когда что-либо назначается 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
}
}
Однако это потенциально «разрушительная» проверка. Но я действительно не чувствую, что это вызовет какие-либо проблемы.
person
mightyiam
schedule
24.07.2017
typeof(window.external.AddSearchProvider)
также, вероятно, является отличительным.
- person EricLaw; 22.03.2019
Просто глупая идея, но не могли бы вы просто сравнить window.outerHeight
с window.innerHeight
, измерить ожидаемую разницу для IE, и если это не так, то это элемент управления WebBrowser?
Это чертовски хакерски, но может работать в большинстве случаев. Есть и другие вещи, которые вы могли бы попытаться сделать, вещи, которые будут работать определенным образом в IE, но, вероятно, не будут работать в элементе управления WebBrowser.
Например:
- скачать файл
- открыть новое окно/вкладку
person
Lux
schedule
20.07.2017
Я не понимаю, как это может быть надежным. Разница между
outerHeight
и innerHeight
зависит от предпочтений пользователя. Отображение или скрытие панели закладок или меню повлияет на разницу. (Я насчитал 4 легкодоступных параметра в IE, которые влияют на разницу.) Открытие или закрытие панели отладки также влияет на это. Zoom также влияет на это. (Я этого не ожидал, но вот мы здесь.) Затем есть такие вещи, как общие настройки пользовательского интерфейса. Использование темы, отличной от темы по умолчанию, может изменить разницу между двумя числами.
- person Louis; 20.07.2017
MSIE 7.0
в строке пользовательского агента. Я думаю, что это не отличить от настоящего браузера IE7 или более позднего браузера IE в режиме совместимости версии 7. - person ConnorsFan   schedule 18.07.2017