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

问题描述 投票:11回答:3

我在具有触摸功能的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的行为类似于其他浏览器?

谢谢

javascript firefox windows-7 touch
3个回答
14
投票

为了在桌面版本的Firefox中启用触摸事件,请在浏览器的地址栏中输入“ about:config”,然后单击“我会小心,我保证!”按钮并向下滚动,直到找到“ 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),enable(1)和auto-detect(2)对标准触摸事件的支持;默认情况下,它们处于自动检测(2)状态。更改首选项后,必须重新启动浏览器以使更改生效。

注意:从Gecko 24.0开始,Firefox的桌面版本已禁用Gecko 18.0引入的触摸事件支持,因为某些受欢迎的网站(包括Google和Twitter)无法正常工作。修复错误后,将再次启用API。包括适用于Android的Firefox和Firefox OS在内的移动版本不受此更改的影响。此外,该API已在Windows 8的Metro风格版本Firefox上启用。


2
投票

触摸事件当前在Firefox中不起作用(版本48.0.1),但是可以通过浏览到about:config并将dom.w3c_pointer_events.enabled设置为true来启用指针事件。如果它是一个触摸事件,则传递给您的处理程序的事件对象将包含一个值为“ touch”的pointerType属性。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.