Tyl*_*ler 5 user-agent internet-explorer-11
我们开始将我们的笔记本电脑升级到 Windows 8 触摸屏,我们发现一些较旧的网站(我们无法更改的网站)将触摸屏检测为移动设备,并且无法正确加载网站。我们在桌面模式下使用 IE11。
有没有办法改变我们传递给网络服务器的用户字符串?
Bayden Systems的UAPick以及使用 IE11 自带的“开发工具”(带有、+ 、 、 )的问题是,这些设置在 IE11 重新启动后无法保留。F12Ctrl8User Agent String
我通过从 @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的结果)
这适用于带有 IE11 v11.0.9600.16384 的 Windows 8.1 64 位。
User agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Browser: Unknow browser.
Run Code Online (Sandbox Code Playgroud)
我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"
Run Code Online (Sandbox Code Playgroud)
这完全改变了您的“用户代理字符串”。执行后我得到:
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
Run Code Online (Sandbox Code Playgroud)
但这也会改变你的“平台”。我会把那个排除在外。(您也可以将“Mozilla”保留为默认值。)
也许,如果您的网页仅查找MSIE,则仅更改 - 信息就足够了Version。Platform“Mozilla”可以保持不变,因此网站仍然可以正确识别它。我还添加了Compatible- 标签。也许这也被使用了。
REGEDIT4
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent]
"Compatible"="compatible"
"Version"="MSIE 9.0"
Run Code Online (Sandbox Code Playgroud)
这导致:
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
Run Code Online (Sandbox Code Playgroud)
IE9的开发工具 ( F12, Ctrl+ 8, )给出的字符串是:User Agent String
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
这看起来最接近原始版本,并增加了将其识别为 IE9 兼容的功能。
我不知道“用户代理字符串”中到底是什么触发您的网站“提供”移动视图(您没有指定您的 UA),但使用这些值应该可以修复它,并且这些设置在 IE11 重新启动后仍然有效电脑。
编辑:
所以问题出在Touch:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0)
IE 不允许您更改(或删除)它自己添加的部分。我们可以更改兼容性、平台、版本,并且可以添加平台前和平台后代币。(尽管 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) // ("
Run Code Online (Sandbox Code Playgroud)
这样你的用户获取就会是
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
Run Code Online (Sandbox Code Playgroud)
(注意-& vbLf & "IGNORE:部分)
执行 .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)
Run Code Online (Sandbox Code Playgroud)
Touch请参阅...用户代理行中不再有;)
(这是一个黑客,但是嘿...它有效)
| 归档时间: |
|
| 查看次数: |
12526 次 |
| 最近记录: |