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

13

我在一个具有触摸功能的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中,确认了'pointerdown'事件。 在Firefox中,确认了'mousedown'事件。

故障排除后,我最终不得不在Firefox中前往'about:config',并将'dom.w3c_touch_events.enabled'的值从0更改为1。这导致Firefox中确认了'touchstart'事件。

我的问题是:

一个支持触摸的机器上不应该已经启用了这个功能吗? IE和Chrome已正确配置,而Firefox没有。(这是Firefox 31的全新下载)。

在这种情况下,有没有办法远程启用触摸事件,使Firefox的行为类似于其他浏览器?

谢谢


1
据我所知,'dom.w3c_touch_events.enabled' 应该被设置为值 (2),即 '自动检测',但由于某些原因它没有被设置。 - William Smith
1
William,你应该把它作为答案并接受它。它确实帮助我在一个干净的Firefox 31安装中解决了问题。 - O. R. Mapper
3个回答

16
为了在Firefox桌面版中启用触摸事件,需在浏览器地址栏中输入“about:config”,点击“I'll be careful, I promise!”按钮,并向下滚动直到找到“dom.w3c_touch_events.enabled”....当您单击此项时,会出现对话框,允许您更改该设置的值。
禁用=(0) 启用=(1) 自动检测=(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开始,在桌面版Firefox中禁用了使用Gecko 18.0引入的触摸事件支持,因为某些流行网站(包括Google和Twitter)不能正常工作。一旦修复了该错误,API将再次启用。
移动版本,包括Firefox for Android和Firefox OS不受此更改的影响。API已在Windows 8的Metro版Firefox上启用。

1
你是说在Firefox默认配置下无法检测触摸屏上的触摸事件吗? - Alvaro

2

1
在Firefox 72中存在一个名为dom.w3c_touch_events.legacy_apis.enabled的事件配置选项,默认情况下关闭。打开它可以帮助一些基于触摸的拖放网站,特别是Atlassian Jira。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接