我相信EDGE最近更改了其行为,并且在台式机,非触摸设备上使用时,现在报告navigator.maxTouchPoints的值> 0
这会破坏以下我们用于检测触摸设备的JS代码:
function is_touch_device() {
var touch = false;
if ( window.PointerEvent && ('maxTouchPoints' in navigator) ) {
// if Pointer Events are supported, just check maxTouchPoints
if (navigator.maxTouchPoints > 0) {
touch = true;
}
} else {
// no Pointer Events...
if ( window.matchMedia && window.matchMedia("(any-pointer:coarse)").matches ) {
// check for any-pointer:coarse which mostly means touchscreen
touch = true;
} else if ( window.TouchEvent || ('ontouchstart' in window) ) {
// last resort - check for exposed touch events API / event handler
touch = true;
}
}
return touch;
}
有人知道在触摸设备上是否使用MS Edge来检测(在JS中)可靠的方法吗?我什么都找不到。
我知道Edge快要死了,但是暂时,我必须支持它。
谢谢!
答案 0 :(得分:0)
您可以使用以下代码来检查它是否是触摸设备。
var timer = 0;
function incTime() {
timer++;
console.log(timer);
if (timer == 5) {
clearInterval(time_int);
console.log('breaked')
};
};
var time_int = '';
function initTime() {
time_int = setInterval(incTime, 1000);
};
initTime()