禁用Android上的标注(上下文菜单)

在networking应用程序中,我需要禁用移动浏览器在触摸目标(例如<img>或链接)上触摸并保持(“长按”)时显示的默认标注。

我已经在使用-webkit-touch-callout: none; 这在iPhone和iPad上运行良好,但似乎不适用于Android(在Android 4.4上testing)。

这个来自W3邮件列表的postbuild议在Javascript中添加一个“contextmenu”事件的监听器,并调用e.preventDefault() 。 这似乎也不工作。

有什么build议么?

Solutions Collecting From Web of "禁用Android上的标注(上下文菜单)"

你可以尝试这样做:

 window.oncontextmenu = function(event) { event.preventDefault(); event.stopPropagation(); return false; }; 

我希望这是有用的…

Doc oncontextmenu

 <!DOCTYPE html> <html> <head> <script> function absorbEvent_(event) { var e = event || window.event; e.preventDefault && e.preventDefault(); e.stopPropagation && e.stopPropagation(); e.cancelBubble = true; e.returnValue = false; return false; } function preventLongPressMenu(node) { node.ontouchstart = absorbEvent_; node.ontouchmove = absorbEvent_; node.ontouchend = absorbEvent_; node.ontouchcancel = absorbEvent_; } function init() { preventLongPressMenu(document.getElementById('doodle')); } </script> </head> <body onload="init()"> <img id="doodle" src="http://sofzh.miximages.com/android/spain-elections-2015-5652792221892608-hp2x.jpg" width="400"> </body> </html>