Проблема с UAPick от Bayden Systems, а также с методом использования собственных "средств разработки" для IE11 с F12, Ctrl+8, User Agent String
, заключается в том, что эти настройки не выдерживают перезапуска IE11.
Я провел некоторое тестирование с изменением значений в реестре по ссылкам, которые уже предоставлены @harrymc.
Сначала HKEY_LOCAL_MACHINE
но здесь это не так.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent
Однако изменение HKEY_CURRENT_USER
сработало. (но зависит от пользователя)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent
Сначала результат без изменений: (результат из myip.nl)
Это для Windows 8.1 64bit с IE11 v11.0.9600.16384.
User agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Browser: Unknow browser.
Я сделал IE9.reg
со следующим:
REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
@="Mozilla/5.0"
"Compatible"="compatible"
"Platform"="Windows NT 6.1"
"Version"="MSIE 9.0"
Это полностью меняет вашу "строку агента пользователя". После выполнения я получил:
User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
Browser: Internet explorer 9.0
Но это также изменит вашу "платформу". Я бы оставил это вне. (Вы также можете оставить "Mozilla" по умолчанию.)
Возможно, если ваши веб-страницы ищут только MSIE
, достаточно изменить только информацию о Version
. Platform
и "Мозилла" могут остаться нетронутыми, поэтому веб-сайты могут по-прежнему правильно их идентифицировать. Я также добавил тег Compatible
. Может быть, это также используется.
REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
"Compatible"="compatible"
"Version"="MSIE 9.0"
Это приводит к:
User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Browser: Internet explorer 9.0
Строка, заданная инструментами разработки (F12, Ctrl+8, User Agent String
) для IE9:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Это кажется наиболее близким к оригиналу и добавляет возможность идентифицировать его как совместимый с IE9.
Я не знаю, что именно в вашем "User Agent String" запускает ваши сайты, чтобы "дать" мобильное представление (вы не указали свой UA), но игра с этими значениями должна исправить это, и эти настройки переживают перезапуск IE11 ПК.
Редактировать:
Так что проблема в Touch
в:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0)
IE не дает вам возможности изменить (или удалить) части, которые он добавляет сам. Мы можем изменить Compatible, Platform, Version и добавить токены до и после платформы. (хотя Версия больше не будет отправлять IE11, а Pre и Post Platform не будут отправляться в заголовке.)
Вы можете попробовать установить режим совместимости, чтобы увидеть, что Touch
все еще там. (Вы уже пробовали это?) Если это работает, вы можете добавить проблемные сайты в список, чтобы они всегда отображались в режиме совместимости.
Если IE продолжает настаивать на отправке Touch
вы можете попробовать изменить UA с помощью расширенного ключа платформы.
REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
@="Mozilla/5.0"
"Platform"="Windows NT 6.1; Trident/7.0; rv:11.0) // ("
Таким образом, ваш UA будет
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) // (; Trident/7.0; Touch; LCJB; rv:11.0)
и, надеюсь, у сайта больше проблем с поиском Touch
между первым (
и )
.
Если это не сработает, единственной опцией будет дополнение, которое будет переопределять UA (например, UAPick, но которое будет постоянным после перезапуска).
Редактировать № 2:
Нашел другой вариант. Если сайт сканирует весь UA он найдет Touch
С помощью следующего вы манипулируете платформенной частью UA с помощью перевода строки, поэтому он точно не найдет его: (Я нашел это решение здесь)
Создайте notouch.vbs
со следующим:
Dim oShell
set oShell = CreateObject("WScript.Shell")
oShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Platform", "Windows NT 6.1; Trident/7.0; rv:11.0)" & vbLf & "IGNORE: (", "REG_SZ"
Set oShell = Nothing
(обратите внимание на & vbLf & "IGNORE:
-part)
После выполнения .vbs часть платформы имеет перевод строки, а затем IGNORE-строку. В заголовках это будет выглядеть так:
User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0)
IGNORE: (Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0)
Смотри ... больше не Touch
в строке User agent;)
(это взломать, но эй ... это работает)