这是检测浏览器是否支持鼠标的相反操作。我该如何检测浏览器是否支持鼠标?桌面版Chrome应该返回true,iPad上的Safari应该返回false。
我想移动浏览器对于通常的检测技巧会返回错误结果。
这是检测浏览器是否支持鼠标的相反操作。我该如何检测浏览器是否支持鼠标?桌面版Chrome应该返回true,iPad上的Safari应该返回false。
我想移动浏览器对于通常的检测技巧会返回错误结果。
从理论上讲,你应该能够测试它是否支持触摸屏,然后反过来。我可能错了,但据我所知,不支持触摸事件的浏览器将支持鼠标事件,反之亦然,因为这两者之间的区别通常是移动浏览器与普通浏览器之间。
编辑:另一种可能性是使用onmousemove来检测触摸功能,就像你使用ontouchmove一样。但是,我不确定移动浏览器是否会注册onmousemove。
该方法检查Touch
对象是否存在,而不使用事件。如果不存在,则表示您有一个鼠标。我认为这是最简单的方法。在极少数同时具有触摸和鼠标的设备上,它将返回false
,因此您必须决定它是否影响您的设计。
function hasTouch() {
return (typeof Touch == 'object' );
};
演示:http://jsfiddle.net/ThinkingStiff/ux89v/
脚本:
function hasTouch() {
return (typeof Touch == 'object' );
};
document.getElementById( 'touch' ).textContent = 'Mouse: ' + !hasTouch();
HTML:
<div id="touch"></div>