Javascript 如何为Firefox启用触摸事件>;=39在带有触摸屏的Windows上
关于如何在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的以下行为: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
- 从来没有接触过
- 仅当手指移动时,使用触摸屏(和手指)单击并指向事件。(指针事件当然是在将dom.w3c_Pointer_events.enabled设置为true之后发生的。)这使得按下按钮变得不可靠
- 通过挤压缩放始终是可能的
- dom.w3c\u pointer\u events.enabled和layers.async-pan-zoom.enabled对触摸事件没有影响
<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';
}