Javascript 防止在iOS web应用程序中复制图像

Javascript 防止在iOS web应用程序中复制图像,javascript,iphone-web-app,Javascript,Iphone Web App,有没有办法防止在iPad或iPhone web应用程序上用手指按住图像时出现菜单。我正在创建一个遥控器,我使用ontouchstart和ontouchend内置函数来创建我实现的“ontouchhold”函数。该功能使用ontouchstart和ontouchend内置功能,通过我的计算机发送红外信号,我的计算机充当服务器,同时用户用手指按住图像(ontouchend功能将清除间隔)。唯一的问题是,如果用户长时间按住手指,那么我实现的javaScript函数ontouchhold就会停止工作,因

有没有办法防止在iPad或iPhone web应用程序上用手指按住图像时出现菜单。我正在创建一个遥控器,我使用ontouchstart和ontouchend内置函数来创建我实现的“ontouchhold”函数。该功能使用ontouchstart和ontouchend内置功能,通过我的计算机发送红外信号,我的计算机充当服务器,同时用户用手指按住图像(ontouchend功能将清除间隔)。唯一的问题是,如果用户长时间按住手指,那么我实现的javaScript函数ontouchhold就会停止工作,因为会弹出一个菜单,询问用户是否要复制/保存图像。如果我可以阻止出现此菜单,那就太好了。

我不知道iOS或移动电话:但是如果您将图像设置为背景图像,它通常不会为您提供保存选项……。

您可以在元素中添加一个选项,以防止复制菜单:

// HTML
<img scr="screenshot.jpg" id="dontshowcopy" />

// JS
element = document.getElementById('dontshowcopy');

element.addEventListener("touchstart",   preventCopy, false); // simple touch events
element.addEventListener("gesturestart", preventCopy, false); // events with more than one finger

function preventCopy(event) {
    event.preventDefault();
}
//HTML
//JS
元素=document.getElementById('dontshowcopy');
元素。addEventListener(“touchstart”,preventCopy,false);//简单触摸事件
元素。addEventListener(“gesturestart”,preventCopy,false);//具有多个手指的事件
功能副本(事件){
event.preventDefault();
}
但它也防止在该元素上启动滑动事件时滚动。

您可以使用:

-webkit-user-select: none;

此属性使html元素不可选择,从而防止iphone的复制行为

-webkit touch callout:none似乎只是防止复制/保存对话框打开,而不禁用任何其他事件


指针事件:无
还将阻止复制/保存对话框,但也将阻止附加到图像的任何其他从属事件

是的,效果很好。唯一的问题是我不知道如何将背景图像放置在另一个图像上。我已经尝试过更改z索引,但它似乎不适用于z索引。我更改了整个css,但我想这是我能找到的唯一解决方案。即使在常规浏览器中,重叠背景图像也是非常棘手的。。。恐怕我帮不了你……你可以用
轻松做到这一点。这些跨度可以重叠。(但是,我更喜欢用户选择答案)OP询问有关iOS web应用程序的信息。这不会阻止在iOS 7上打开复制/保存对话框。请看我的答案。谢谢!就我而言,这是唯一有效的解决方案。(我在一个内置图像的div上使用touchstart,完全删除事件也就是删除touchstart,其他选项仍会显示“复制”菜单)