tengo un menú contextual personalizado para el lienzo, pero con los elementos de texto tengo un problema, cuando trato de hacer clic en el elemento de texto con el botón derecho, tengo una selección de texto (como un doble clic).
Cuando uso trato de usar:
document.addEventListener('contextmenu', (e) => { e.preventDefault(); })no pudo ayudar, porque tengo selección de texto.
No es realmente "digna de respuesta", pero debido a mi baja reputación, no puedo escribir un comentario. Entonces, dicho esto, tiene eventos como "onCopy", "onCut", "onPaste", etc. Puede deshabilitar todos y cada uno de ellos individualmente. Puedes ver un ejemplo de eso aquí:
<!DOCTYPE html> <html> <head> <title>Title of the document</title> </head> <body> <h2>Copy, cut and paste disabled</h2> <input type="text" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" autocomplete=off/> <br> </body> </html>Si tiene más preguntas, aquí está el artículo completo.
A veces, la expresión javascript en línea es un buen truco. Por ejemplo, las etiquetas de formulario que estamos escribiendo
<form id="test" onsubmit="return false;">
Así que me basé en este ejemplo. tal vez puedas probar esto
<canvas oncontextmenu="return false;"></canvas>
edite después de los comentarios: no sé qué acción de botón necesita, pero tal vez pueda intentar encontrar 1,2,3,4 ...
document.addEventListener('contextmenu', function(e) { // forexample right-click is equal to two if (e.button == 2) { // Block right-click menu, thru preventing default action e.preventDefault(); // if its not work with e.preventDefault(); add next line return false; } });