Microsoft浏览器正在为windows 10平板和桌面返回相同的用户代理。因此,请帮助我通过任何javascript特性、用户代理检测或任何其他方式来区分micosoft、边缘平板和桌面浏览器。
注意:通常我们通过指针事件来区分平板浏览器和桌面浏览器。tablet支持指针事件,而桌面不支持指针事件。在windows 10中,甚至桌面都支持指针事件。
发布于 2015-08-14 08:06:57
与Windows8/8.1不同,微软只有一个边缘浏览器,而不是一个“沉浸式”触摸友好浏览器和常规桌面win32应用程序。因此,您不能用UA字符串检测差异,因为没有区别。
但是,如果您的用例是为触摸设备(平板和可转换设备、2 in -1,等等)提供触摸友好的布局,并且为鼠标和键盘用户提供更紧凑的布局,那么您可以在CSS中使用特性检测。
为此,您可以使用CSS查询交互媒体功能。
如果您想检测到有触摸屏:
@media (pointer: coarse) {
...styles for touch screen...
}如果您希望检测到用户无法悬停(触摸屏上的一个常见问题):
@media (hover: none) {
... styles ...
}但是,重要的是要指出,这报告了主要的指向设备。在可转换的机器中,可以有触控板/鼠标和触摸屏,它可以报告触摸屏的值。
详情请参见规格。
发布于 2015-08-03 07:09:13
测试user-agent for Touch对您不起作用吗?
发布于 2015-09-16 06:32:06
我发现您可以使用JavaScript来检测是否处于Tablet模式(尽管代码可能只需要在边缘处于用户代理中,而Windows不在用户代理时才需要运行)--请参阅https://stackoverflow.com/a/32601200/436776。
这在Edge中有效,但在IE11中不起作用。
一种类似于Windows8/8.1上的可靠地检测地铁/现代的技术。
https://stackoverflow.com/questions/31780562
复制相似问题