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

How to make sure touch events are enabled in Firefox desktop browser?

本文关键字:浏览器 桌面 启用 事件 触摸 Firefox 何确保 确保      更新时间:2023-09-26

我在带有触摸功能的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'被确认。

在排除故障后,我最终不得不在Firefox中找到"about:config"和更改dom.w3c_touch_events。"Enabled"取值范围为0 ~ 1。这会导致"touchstart"在Firefox中被确认。

我的问题是:

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

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

谢谢

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

disable=(0) enable=(1) autodetect =(2)

默认情况下应该设置为"自动检测",但是目前,由于一些bug,桌面版Firefox设置为"禁用"。

关于这个设置的信息可以在这里找到:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Touch_events

摘录:

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

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

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

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

在Firefox 72中有一个dom.w3c_touch_events.legacy_apis.enabled事件配置选项。默认是关闭的。打开它可以帮助一些网站实现基于触摸的拖放操作。尤其是Atlassian Jira