Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为Firefox启用触摸事件>;=39在带有触摸屏的Windows上_Javascript_Firefox_Touch - Fatal编程技术网

Javascript 如何为Firefox启用触摸事件>;=39在带有触摸屏的Windows上

Javascript 如何为Firefox启用触摸事件>;=39在带有触摸屏的Windows上,javascript,firefox,touch,Javascript,Firefox,Touch,关于如何在Windows上使用Firefox启用touch events,已经有一些问题了,但我所能找到的基本上可以归结为“转到about:config并将dom.w3c_touch_events.enabled设置为1(或2)” 但对于当前的Firefox46(在我看来,这种行为始于版本39),dom.w3c\u touch\u events.enabled似乎没有任何效果 提及它可以被启用,提及相同 我错过了什么?如何启用触摸事件 详细信息: 我试过Windows 8.1和10。我看到了IE

关于如何在Windows上使用Firefox启用touch events,已经有一些问题了,但我所能找到的基本上可以归结为“转到about:config并将dom.w3c_touch_events.enabled设置为1(或2)”

但对于当前的Firefox46(在我看来,这种行为始于版本39),dom.w3c\u touch\u events.enabled似乎没有任何效果

提及它可以被启用,提及相同

我错过了什么?如何启用触摸事件

详细信息:

我试过Windows 8.1和10。我看到了IE(无触摸,但指针事件)、Edge(打开触摸和指针事件)和Vivaldi(触摸事件,未尝试其他Chromium浏览器)的预期行为

使用下面的测试页面,我看到Firefox 46的以下行为:

  • 从来没有接触过
  • 仅当手指移动时,使用触摸屏(和手指)单击并指向事件。(指针事件当然是在将dom.w3c_Pointer_events.enabled设置为true之后发生的。)这使得按下按钮变得不可靠
  • 通过挤压缩放始终是可能的
  • dom.w3c\u pointer\u events.enabled和layers.async-pan-zoom.enabled对触摸事件没有影响
其他测试页面(如PEP测试页面)显示相同的行为。我错过了什么

测试页面:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no" />
  <meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="mobile-web-app-capable" content="yes" />
  <meta name="apple-mobile-web-app-status-bar-style" content="black" />
  <style type="text/css" tag="DisallowSelect">
    * {
      -webkit-touch-callout: none;
      -moz-user-select: none;
      -ms-user-select: none;
      -webkit-user-select: none;
      user-select: none;
      -ms-touch-action: none;
      touch-action: none;
    }
  </style>
  <title>Touch-Test</title>
  <script type="text/javascript">
    function Init() {
      window.oncontextmenu = function () { return false; };

      document.getElementById('mouseBox').addEventListener('mousedown', mouseBoxDown, false);
      document.getElementById('mouseBox').addEventListener('mouseup', mouseBoxUp, false);
      document.getElementById('mouseBox').addEventListener('mouseleave', mouseBoxUp, false);

      document.getElementById('touchBox').addEventListener('touchstart', touchBoxDown, false);
      document.getElementById('touchBox').addEventListener('touchend', touchBoxUp, false);
      document.getElementById('touchBox').addEventListener('touchcancel', touchBoxUp, false);

      document.getElementById('pointerBox').addEventListener('pointerdown', pointerBoxDown, false);
      document.getElementById('pointerBox').addEventListener('pointerup', pointerBoxUp, false);
      document.getElementById('pointerBox').addEventListener('pointercancel', pointerBoxUp, false);
      document.getElementById('pointerBox').addEventListener('pointerleave', pointerBoxUp, false);
      document.getElementById('pointerBox').addEventListener('pointerout', pointerBoxUp, false);
    }

    function mouseBoxDown(evt) {
      document.getElementById('mouseBox').style.backgroundColor = '#d00000';
    }

    function mouseBoxUp(evt) {
      document.getElementById('mouseBox').style.backgroundColor = '#eee';
    }

    function touchBoxDown(evt) {
      evt.preventDefault();
      document.getElementById('touchBox').style.backgroundColor = '#00d000';
    }

    function touchBoxUp(evt) {
      evt.preventDefault();
      document.getElementById('touchBox').style.backgroundColor = '#eee';
    }

    function pointerBoxDown(evt) {
      evt.preventDefault();
      document.getElementById('pointerBox').style.backgroundColor = '#0000d0';
    }

    function pointerBoxUp(evt) {
      evt.preventDefault();
      document.getElementById('pointerBox').style.backgroundColor = '#eee';
    }

  </script>
</head>
<body onload="Init()">
  <div style="width: 100px; height: 100px; background-color: #eee" id="mouseBox"></div>
  <div style="width: 100px; height: 100px; top: 120px; position: absolute; background-color: #eee" id="touchBox"></div>
  <div style="width: 100px; height: 100px; top: 240px; position: absolute; background-color: #eee" id="pointerBox"></div>
</body>
</html>

* {
-webkit触摸标注:无;
-moz用户选择:无;
-ms用户选择:无;
-webkit用户选择:无;
用户选择:无;
-ms触摸动作:无;
触摸动作:无;
}
触摸测试
函数Init(){
window.oncontextmenu=函数(){return false;};
document.getElementById('mouseBox')。addEventListener('mousedown',mouseBoxDown,false);
document.getElementById('mouseBox')。addEventListener('mouseup',mouseBoxUp,false);
document.getElementById('mouseBox')。addEventListener('mouseleave',mouseBoxUp,false);
document.getElementById('touchBox')。addEventListener('touchstart',touchBoxDown,false);
document.getElementById('touchBox')。addEventListener('touchend',touchBoxUp,false);
document.getElementById('touchBox')。addEventListener('touchcancel',touchBoxUp,false);
document.getElementById('pointerBox')。addEventListener('pointerdown',pointerBox Down,false);
document.getElementById('pointerBox')。addEventListener('pointerup',pointerBox,false);
document.getElementById('pointerBox')。addEventListener('pointercancel',pointerBox,false);
document.getElementById('pointerBox')。addEventListener('pointerleave',pointerBox,false);
document.getElementById('pointerBox')。addEventListener('pointerout',pointerBox,false);
}
功能鼠标座(evt){
document.getElementById('mouseBox').style.backgroundColor='#d00000';
}
功能鼠标器(evt){
document.getElementById('mouseBox').style.backgroundColor='#eee';
}
功能接地(evt){
evt.preventDefault();
document.getElementById('touchBox').style.backgroundColor='#00d000';
}
功能触摸屏(evt){
evt.preventDefault();
document.getElementById('touchBox').style.backgroundColor='#eee';
}
函数指针BoxDown(evt){
evt.preventDefault();
document.getElementById('pointerBox')。style.backgroundColor='#0000d0';
}
函数指针BOXUP(evt){
evt.preventDefault();
document.getElementById('pointerBox').style.backgroundColor='#eee';
}