Javascript 有没有办法在Windows Phone 8.1 Update 2上检测新的IE版本?
Windows Phone的每次更新都会给内部Internet Explorer带来新功能/漏洞 我们想知道一种检测8.1更新2(GDR2)的方法 大概有一个功能或bug可以嗅出:Javascript 有没有办法在Windows Phone 8.1 Update 2上检测新的IE版本?,javascript,windows-phone-8.1,internet-explorer-11,Javascript,Windows Phone 8.1,Internet Explorer 11,Windows Phone的每次更新都会给内部Internet Explorer带来新功能/漏洞 我们想知道一种检测8.1更新2(GDR2)的方法 大概有一个功能或bug可以嗅出: 添加到GDR2中的功能,或 GDR1中的错误现在已在GDR2中修复,或者 检测一个添加到GDR2中的bug(不稳定的嗅探,因为bug可能会被修补,所以不太可取) 请注意microsoft提供的示例。另请注意,如果可能,可以使用功能检测,但仍然需要嗅探,因为:(1)您无法始终找到检测功能/错误的方法(一些CSS错误,一
'msFlexAlign' in document.documentElement.style
对于Internet Explorer 11 Mobile Update 1,返回true;对于IE11 Update 2,返回false。这是一个jsbin测试
注:我是通过使用Modernizer 3并比较和发现的。只有一个区别,flexboxtweener值从true更改为false
编辑:如果您需要检测更新1,那么检测WP8.1上的IE11和WP8.1更新1之间差异的一种方法是,8.1更新1(以及更新2)支持document.ontouchstart,您可以使用窗口中的“ontouchstart”测试它。但是,请注意,Windows Phone 10(10.0.10586)上的应用程序如果使用网络视图(网络视图使用IE11和窗口中的“ontouchstart”===false!!!arrrggh),则会再次恢复
编辑:如果在Windows Phone 10(Windows 10 Mobile 10.0.10586)上为目标WP8.1编译的应用程序中使用WebView,则它使用IE11,而应用程序不使用Microsoft Edge!WTF:IE11的那个版本在document.documentElement.style中为'msFlexAlign'返回true,因此更新1和更新2的更改似乎在WP10-ouch中丢失或恢复。您可以在WP10/W10M(更新3;-|)上检测IE11,因为它在用户代理中具有“Trident/8.0”,而WP8.1上的IE11具有“Trident/7.0”。只有当用户代理包含“WebView/2.0”(尽管也提到了“MSAppHost”)时,您才可以查找差异。如果使用设置|桌面模式(其中包括删除“Windows Phone 8.1”并将“WPDesktop”添加到用户代理),或者使用X-UA-Compatible将文档模式更改为
'ontouchstart'进行测试。但是,请注意,Windows Phone 10(10.0.10586)上的应用程序在使用网络视图时会再次恢复(网络视图使用IE11和'ontouchstart'在窗口===false
!!!arrgggh)。您可以检查是否存在“Windows Phone”、“Trident/8.0”和用户代理中的“WebView/2.0”来检测Windows 10 Mobile。