我的网站运行的脚本只对鼠标有用,必须在触摸屏上禁用,因为它不适用于它们。
所以要解决它我用这个:
var deviceAgent = navigator.userAgent.toLowerCase();
var isTouchDevice = Modernizr.touch ||
(deviceAgent.match(/(iphone|ipod|ipad)/) ||
deviceAgent.match(/(android)/) ||
deviceAgent.match(/(iemobile)/) ||
deviceAgent.match(/iphone/i) ||
deviceAgent.match(/ipad/i) ||
deviceAgent.match(/ipod/i) ||
deviceAgent.match(/blackberry/i) ||
deviceAgent.match(/bada/i));
if (!isTouchDevice) {
//my fonction
}
但是这段代码没有检测到其他触摸设备,主要是像平板电脑(我有一个),我想用deviceAgent或其他任何其他触摸设备或所有触摸设备检测,如果可能的话。
非常感谢你的帮助!
答案 0 :(得分:2)
这应该这样做..我已经在ios safari,osx safari,windows IE,windows Chrome,windows Firefox,android上进行了测试。
var isTouchDevice = 'ontouchstart' in window || (navigator.msMaxTouchPoints>0);
基本上,我们让浏览器确定是否有触控设备,然后寻找触控事件的浏览器特定实现。
Internet Explorer 9/10/11
navigator.msMaxTouchPoints
所有其他人:
'ontouchstart' in window