在Android上禁用标注(关联菜单)
在web应用程序中,我需要禁用移动浏览器在触摸和按住触摸目标(如在Android上禁用标注(关联菜单),android,html,css,web-applications,touch,Android,Html,Css,Web Applications,Touch,在web应用程序中,我需要禁用移动浏览器在触摸和按住触摸目标(如或链接)时显示的默认标注 我已经在使用-webkit touch callout:none在iPhone和iPad上运行良好,但在Android上似乎不起作用(在Android 4.4上测试) W3邮件列表建议在Javascript中为“contextmenu”事件添加一个侦听器,并调用e.preventDefault()。这似乎也不起作用 有什么建议吗?您可以尝试这样做: window.oncontextmenu = functi
或链接)时显示的默认标注
我已经在使用-webkit touch callout:none
在iPhone和iPad上运行良好,但在Android上似乎不起作用(在Android 4.4上测试)
W3邮件列表建议在Javascript中为“contextmenu”事件添加一个侦听器,并调用e.preventDefault()
。这似乎也不起作用
有什么建议吗?您可以尝试这样做:
window.oncontextmenu = function(event) {
event.preventDefault();
event.stopPropagation();
return false;
};
我希望这是有用的
功能吸收(事件){
var e=事件| | window.event;
e、 preventDefault&&e.preventDefault();
e、 stopPropagation&e.stopPropagation();
e、 取消气泡=真;
e、 returnValue=false;
返回false;
}
功能防止长按功能表(节点){
node.ontouchstart=吸收剂;
node.ontouchmove=吸收剂;
node.ontouchend=吸收系数;
node.ontouchcancel=吸收剂;
}
函数init(){
PreventLongPress菜单(document.getElementById('doodle');
}
这种纯CSS方法适合我:
pointer-events: none; // for Android
-webkit-touch-callout: none; // for iOS
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
正如我在问题中所说的,我已经尝试过了,但它不起作用。你还没有谈论过stopPropagation。在这种情况下,它有什么区别?我试图阻止默认的浏览器操作,而不是阻止事件冒泡。我已经在安卓4.4.2上试过了,它正在工作。你试过这段代码吗?这个解决方案对我有效,css只有一个没有。这将禁用所有事件。我需要禁用触摸目标上的上下文菜单,但这些应该仍然可以触摸。
指针事件:无
禁用所有指针事件。我只需要禁用上下文菜单;不应禁用所有其他触摸事件。@Grodriguez找到解决方案了吗?@captaindroid-Nope