2

我正在尝试编写可以在浏览器中运行或作为 phonegap 应用程序运行的代码。我需要做的一件事是确定我是否处于支持触摸事件的环境中。

我目前的问题是我的 Chrome (20.0.01132.47 m) 返回true('ontouchstart' in window)它不会触发触摸事件。

当我打开开发者工具设置对话框(开发者工具右下角的齿轮图标)。我可以选择“模拟触摸事件”。当我选中此选项时,浏览器会触发触摸事件。但是当它未被选中时,它不会触发事件,但我使用的检测仍然表明触摸事件可用。

我可以从脚本中判断是否启用了“模拟触摸事件”?

基于 JQuery 的答案很好。

4

2 回答 2

1

我可以从脚本中判断是否启用了“模拟触摸事件”吗?

尝试检查不止一根手指;-)

也许这有帮助?

window.addEventListener('touchstart', function(event) {
    var emulate = event.targetTouches.length == 2;
    alert(emulate ? true : false);
}, false);

顺便说一句: 除非您关闭了开发人员工具栏,否则会'ontouchstart' in window导致false(chrome v21.0.1180.60) 。

小提琴

于 2012-09-12T05:01:09.617 回答
0

js的最佳方法:

function is_touch_device() {
    return 'ontouchstart' in window || navigator.maxTouchPoints;
}
console.log(is_touch_device())
于 2016-11-02T05:34:01.923 回答