有没有办法检测用户是否已启动微软边缘平板电脑或桌面浏览器?

时间:2015-08-03 06:18:52

标签: javascript html5 user-agent microsoft-edge

Microsoft边缘浏览器为Windows 10平板电脑和桌面返回相同的用户代理。所以请帮助我通过任何javascript功能或useragent检测或任何其他方式区分micosoft边缘平板电脑和桌面浏览器。

注意:通常我们会通过指针事件来区分平板电脑和桌面浏览器。 平板电脑支持指针事件,而桌面不支持。 在Windows 10中,甚至桌面都支持指针事件

3 个答案:

答案 0 :(得分:3)

与Windows 8 / 8.1不同,只有一个Microsoft Edge浏览器,而不是“身临其境”的触控友好型浏览器和常规桌面win32应用程序。因此,您无法检测UA字符串的差异,因为没有区别。

但是,如果您的用例是为触摸设备(平板电脑和可转换设备,二合一设备等)提供触摸友好布局,并且仅为鼠标和键盘用户提供更紧凑的布局,则可以使用这个CSS。

为此,您可以使用CSS Media Queries Interaction媒体功能。

如果您想检测到有触摸屏:

@media (pointer: coarse) { 
    ...styles for touch screen...
}

如果您想检测到用户无法悬停(触摸屏上的常见问题):

@media (hover: none) {
   ... styles ...
}

然而,重要的是要指出这会报告主要指点设备。在可以使用触控板/鼠标和触摸屏的敞篷车等机器中,它可以报告触摸屏的值。

有关详细信息,请参阅the spec

答案 1 :(得分:0)

user-agent测试Touch对您不起作用?

答案 2 :(得分:0)

我发现你可以使用JavaScript来检测是否处于平板电脑模式(尽管代码可能只需要在Edge位于用户代理中时运行,而Windows Phone不在用户代理中?) - 请参阅{{ 3}}

这适用于Edge,但在IE11中不起作用。

类似的技术适用于Windows 8 / 8.1上的https://stackoverflow.com/a/32601200/436776

相关问题