【问题标题】:DOM touch events on IE/EDGE instead of mousedownIE/EDGE 上的 DOM 触摸事件而不是 mousedown
【发布时间】:2015-10-05 23:05:26
【问题描述】:

我正在实现以下用于在 Canvas 上添加事件的 js 代码:

c.addEventListener("touchstart",function(e){console.log('touch')},true);
c.addEventListener("mousedown",function(e) {console.log("mouse")},true);

我的电脑是混合 Windows 10 平板电脑。 在 IE/EDGE 上,当我执行鼠标单击时,我会得到“鼠标”日志。 在 IE/EDGE 上,当我在屏幕上执行触摸时,我也会得到“鼠标”日志。

但是,在 IE/EDGE mobile (Windows phone) 或 Chrome 上,我在触摸屏幕时会收到“触摸”日志。

我确信 IE/EDGE 在笔记本电脑上执行时会将“触摸”事件转换为“鼠标”事件。

是否有任何 javascript、元标记或任何选项来禁用此“翻译”?

注意。由于 PIXIJS 框架,我正在使用触摸和鼠标事件。

【问题讨论】:

  • 如果你使用的是 pixi.js,你不应该用 pixi.js 的交互管理器来处理鼠标和触摸事件吗? pixijs.github.io/docs/PIXI.interaction.InteractionManager.html它有自己的onMouseDown/onTouchStart事件
  • 问题是当我添加一个 PIXI 触摸事件时。它不适用于台式机,即使使用触摸屏也是如此。

标签: internet-explorer events touch mouse microsoft-edge


【解决方案1】:

我正在笔记本电脑上处理 EDGE 上的触摸事件,您可以通过更改标志的某些设置来停止翻译。在浏览器 URL 中放置 about:flags。 在场下 “启用触摸事件”选择“仅在检测到触摸屏时启用”并在 “触发兼容的鼠标事件以响应点击手势” 选择“始终关闭” 如图所示

这将禁用您的自动翻译。重新启动浏览器,您将开始收到触摸事件。

【讨论】:

  • 是否可以通过编程方式禁用它?
  • 即使我尝试过,但我认为它不能以编程方式更改,因为标志是非常特定于浏览器的东西,因为它们会改变行为。你可以在这里找到更多的细节stackoverflow-link
【解决方案2】:

Staring EdgeHTML 17,微软支持指针事件解决问题:

https://stackoverflow.com/a/51159745/9598077

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2015-01-20
    相关资源
    最近更新 更多