3

在此期间,我制作了一些新的网络应用程序,但我在拖放方面遇到了很大的问题。我用 javascript 编写了一个文件管理器,但是在移动设备(智能手机、平板电脑和 iOs)上我尝试拖放时,手机会显示 longPress 菜单(在文件夹图标上,例如)用于复制 url 或图像。JS中有什么方法可以在手机上禁用longPress?

通过 css 加载图像,对我来说不是一个有效的解决方案。

4

2 回答 2

9
-webkit-touch-callout: none;                /* prevent callout to copy image, etc when tap to hold */
    -webkit-user-select: none;                  /* prevent copy paste, to allow, change 'none' to 'text' */
于 2013-06-25T13:08:11.420 回答
0

检查值navigator.userAgent并与 android|iphone|ipad 等进行比较,在您的 java 脚本中,您可以执行以下操作

function init() {
  onLongPress(document.getElementById('element'));
}

function onLongPress(node) {
  node.ontouchstart = nullEvent;
  node.ontouchend = nullEvent;
  node.ontouchcancel = nullEvent;
  node.ontouchmove = nullEvent;
}

function nullEvent(event) {
  var e = event || window.event;
  e.preventDefault && e.preventDefault();
  e.stopPropagation && e.stopPropagation();
  e.cancelBubble = true;
  e.returnValue = false;
  return false;
}
于 2013-06-25T13:06:43.473 回答