【发布时间】:2022-01-25 00:37:28
【问题描述】:
Edge 浏览器为 navigator.MaxTouchPoints 返回 2。我们使用该属性来检测触摸设备。有没有其他方法可以做到这一点?
【问题讨论】:
标签: touch microsoft-edge
Edge 浏览器为 navigator.MaxTouchPoints 返回 2。我们使用该属性来检测触摸设备。有没有其他方法可以做到这一点?
【问题讨论】:
标签: touch microsoft-edge
不确定您使用的是 MS Edge (EdgeHtml) 浏览器还是 MS Edge chromium 浏览器。你也没有提到浏览器的版本。
我用两种浏览器进行了测试,根据我的测试,我发现 navigator.MaxTouchPoints 返回 0。
测试代码:
<!DOCTYPE html>
<html>
<head>
<script>
alert("navigator.maxTouchPoints = " + navigator.maxTouchPoints);
</script>
</head>
<body>
</body>
</html>
输出:
如果您使用的是旧版本,那么我建议将其更新为最新版本并再次进行测试。
如果问题仍然存在,那么尝试通过快照提供详细信息可能有助于缩小问题范围。
【讨论】:
我也有这种行为。当笔记本电脑具有多点触控功能的触摸板时会引起这种情况。甚至还有一个 microsoft issue 用于此(但已被删除)
如果我从我的边缘(Microsoft Edge 44.18362.449.0 和 HTML 18.18362)运行以下 test,则所有值都是绿色(无效)。
还有一些proposed fixes here。
更新:
不幸的是,来自 patrickhlauke 测试页的第一个测试显示了以下内容:
“触摸功能检测”=> 全部为红色,这是完全错误的。 但是 navigator.maxTouchPoints 不同:
navigator.maxTouchPoints (real touchdisplay) = 10
navigator.maxTouchPoints (Touchpad) = 2
所以我会做这样的事情:
if(Browser=edge && maxTouchPoints > 2) => real Touchdisplay
if(Browser == edge && maxTouchPoints <=2) only tochpad not real touch display
=> 2021 年 3 月 9 日之后,当旧边缘 EOL 结束时,我将删除该代码...
【讨论】: