在Ipad safari浏览器上点按一会儿,禁用默认功能

时间:2012-12-19 09:28:06

标签: javascript jquery ipad

屏幕上默认保持点击(例如,按住1秒钟)将显示保存图像/复制的选项。但是,我想关闭我的网络应用程序的功能,是否可能?我试图将touchmove的事件替换为selectall,但它不起作用。谢谢你的帮助。

addEventListener('touchmove', function(e) { e.preventDefault(); }, true);

2 个答案:

答案 0 :(得分:4)

不仅可以禁用preventDefault,还可以禁用其他属性:

e.preventDefault(); 
e.cancelBubble = true;
e.returnValue = false;
return false;

同样的事件,你确定它是touchmove吗?

答案 1 :(得分:3)

我认为值得一提的是你可以用纯CSS做到这一点。它可能不是一个好主意,因为IE10或Opera Mobile都不支持它。但它可以完成,并且在未来,这可能是比使用JavaScript更好的方式。或者如果你只是在谈论iPhone和iPad,这种方法会很好用。这是一个例子on CodePen

代码很简单:

.notouch {
    pointer-events: none;
}

只需将notouch类提供给您想要影响的任何图像。

如果要对页面上的每个图像执行此操作,请执行以下操作:

img {
    pointer-events: none;
}

我应该就可用性发表强制性演讲。通过这样做,您可以覆盖人们期望一直存在的默认功能。除非你有一个非常真的这样做的理由,否则这会给你带来非常糟糕的体验。所以,请确保你这样做。

修改

要摆脱放大镜,请使用以下代码:

.notouch {
    pointer-events: none;
    -webkit-user-select:none;
}

-webkit-user-select设为'无'你可能甚至不需要关闭指针事件,但我不确定。我也更新了CodePen。