Búsqueda de sitios web

javascript - ¿Cómo puedo evitar que un navegador genere el evento ContextMenu por una pulsación larga?


Los navegadores soportan eventos táctiles y pueden generar eventos de ratón. Además, para un toque prolongado, el navegador genera un evento ContextMenu. Sin embargo, en mi entorno industrial, quiero que todos los eventos táctiles se manejen como un evento de clic. ¿Existe una configuración global para impedir que el navegador genere eventos de menú contextual? ¿O al menos puedo establecer el tiempo en que el navegador generará dicho evento?

Mi única solución que he ideado hasta ahora es suscribirme a los eventos de clic y del menú contextual y llamar al mismo controlador. Sin embargo, preferiría evitar esto para cada botón en mi aplicación...

¿Alguna idea?

Respuesta #1

Hay varias respuestas en Desactivar el menú contextual al mantener pulsado en Android

Pero la respuesta más votada allí puede no ser una buena solución para ti. Intenta y ve si esto funciona,

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

Recuerda que window.ontouchstart sobrescribirá la asignación de función anterior si existe. Si quieres activar varias funciones diferentes con touchstart en window, debes usar addEventListener.