如何确保在Firefox桌面浏览器中启用触摸事件?

时间:2014-07-29 20:17:09

标签: javascript firefox windows-7 touch

我在具有触控功能的Windows 7桌面上使用了一个简单的测试。 为简单起见,它是这样的:

temp_div.addEventListener('touchstart', function(e){ /*confirm */ }, false)
temp_div.addEventListener('pointerdown', function(e){ /*confirm */ }, false)
temp_div.addEventListener('mousedown', function(e){ /*confirm */ }, false)

在Chrome中,' touchstart'已经被证实。 在IE中,'指针向下'已经被证实。 在Firefox中,' mousedown'被证实了。

排除故障后,我最终不得不去关于:config'在Firefox和 更改' dom.w3c_touch_events.enabled'从0到1的值。这导致了触摸启动'在Firefox中确认。

我的问题是这些:

这是不是已经在具有触控功能的机器上启用了? IE和Chrome配置正确,Firefox则没有。 (这是Firefox 31的全新下载)。

在这种情况下,是否有远程启用触摸事件,以便Firefox的行为与其他浏览器类似?

由于

3 个答案:

答案 0 :(得分:14)

为了在桌面版Firefox中启用触摸事件,在浏览器的地址栏中输入“about:config”,点击“我会小心,我保证!”按钮并向下滚动,直到找到“dom.w3c_touch_events.enabled”....当您单击此项目时,将出现一个对话框,允许您更改设置的值。

disable =(0)enable =(1)auto-detect =(2)

默认情况下应设置为“自动检测”,但目前,桌面版Firefox由于某些问题而设置为“禁用”。

有关此设置的信息,请访问: https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events

摘录:

dom.w3c_touch_events.enabled三态首选项可用于禁用(0),启用(1)和自动检测(2)对标准触摸事件的支持;默认情况下,它们处于自动检测状态(2)。更改首选项后,必须重新启动浏览器才能使更改生效。

注意:自Gecko 24.0起,Gecko 18.0引入的触摸事件支持已在桌面版Firefox上禁用,因为包括Google和Twitter在内的一些热门网站无法正常运行。修复错误后,将再次启用API 包括Firefox for Android和Firefox OS在内的移动版本不受此更改的影响。此外,已在Metro版型的Firefox for Windows 8上启用了API。

答案 1 :(得分:2)

触摸事件目前在Firefox中无效(版本48.0.1),但可以通过浏览到about:config并将 dom.w3c_pointer_events.enabled 设置为真。传递给处理程序的事件对象将包含一个pointerType属性,其值为" touch"如果是触摸事件。

请参阅:https://mobiforge.com/design-development/html5-pointer-events-api-combining-touch-mouse-and-pen

答案 2 :(得分:0)

Firefox 72中有一个dom.w3c_touch_events.legacy_apis.enabled事件配置选项。默认情况下处于关闭状态。启用它可以帮助某些基于触摸的网站拖放。尤其是Atlassian Jira。