Javascript 有没有办法在Windows Phone 8.1 Update 2上检测新的IE版本?

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错误,一

Windows Phone的每次更新都会给内部Internet Explorer带来新功能/漏洞

我们想知道一种检测8.1更新2(GDR2)的方法

大概有一个功能或bug可以嗅出:

  • 添加到GDR2中的功能,或

  • GDR1中的错误现在已在GDR2中修复,或者

  • 检测一个添加到GDR2中的bug(不稳定的嗅探,因为bug可能会被修补,所以不太可取)

  • 请注意microsoft提供的示例。另请注意,如果可能,可以使用功能检测,但仍然需要嗅探,因为:(1)您无法始终找到检测功能/错误的方法(一些CSS错误,一些需要用户交互的错误),以及(2)我们希望使用异常日志和其他记录信息记录浏览器版本(以便我们可以找到问题的模式),以及(3)我们希望在单个位置显示任何设备的版本,以便用户可以轻松地向我们报告(无需我们要求他们进入特定于设备的设置等)。

    编辑:是检测不同Windows Phone更新的示例代码(用于更新1、2和10。您可以使用javascript。)

    在更新2中,他们似乎删除了对2011样式flexbox(带有ms前缀)的支持,可通过以下代码对其进行测试:

    '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将文档模式更改为注意,我也尝试过测试老挝语支持,但toLocaleDateString()已经在GDR1中支持老挝语。GDR1和GDR2的得分均为346。检测WP8.1上的IE11和WP8.1更新1之间差异的方法是8.1更新1(以及更新2,但WP10上的IE11)支持document.ontouchstart,您可以在窗口中使用
    'ontouchstart'进行测试。但是,请注意,Windows Phone 10(10.0.10586)上的应用程序在使用网络视图时会再次恢复(网络视图使用IE11和
    'ontouchstart'在窗口===false
    !!!arrgggh)。您可以检查是否存在“Windows Phone”、“Trident/8.0”和用户代理中的“WebView/2.0”来检测Windows 10 Mobile。