Se puede hacer con JavaScript agregando un detector de eventos para 'contextmenu'
sobre un elemento. La devolución de llamada agregada entonces llamaría event.preventDefault
para desactivar el menú contextual del botón derecho. La palabra específica debe tener algún identificador único dentro del DOM para que el script pueda escuchar los clics derechos en el elemento correcto. Por ejemplo, demarque la palabra con etiquetas de extensión con un atributo de identificación único.
No sé qué espera lograr al desactivar el clic derecho, pero puedo decir que no será tan efectivo como podría esperar. Hay otras formas de realizar tareas similares. Sólo hace falta un poco más de esfuerzo y conocimiento. Y deshabilitar la funcionalidad esperada podría hacer que los visitantes piensen que su sitio no funciona y podrían ir a otra parte. Generalmente desaconsejo implementar trucos como este por estas mismas razones.
Por eso quiero desactivar el clic derecho en una pequeña parte del texto, en particular en un código alfanumérico: desde enero en Italia, cada apartamento para alquiler a corto plazo debe tener un código CIN y debe aparecer en todos los anuncios, incluso en La Internet. Como puedes imaginar, simplemente ingresa este código en Google y podrás ver el mismo departamento en varios sitios. Esta bonita idea del gobierno creará en realidad un comparador de precios; Por esta razón quiero disuadir a las personas que visitan mis páginas de copiar el código y ponerlo en Google. El código es bastante largo y sin hacer clic derecho muchos no querrán transcribirlo a mano.
¿Por qué alguien no haría doble clic en el código CIN y lo copiaría y pegaría (mediante los atajos de teclado Ctrl-C/Ctrl-V) en Google? No es necesario hacer clic derecho, por lo que deshabilitarlo sería en gran medida ineficaz. También puede desactivar los dobles clics izquierdos de manera similar, pero eso no impedirá que alguien arrastre, seleccione más texto del necesario y luego elimine el texto sobrante. Incluso si deshabilitaste todos los eventos de mouse y teclado en una página, alguien aún podría obtener la vista HTML fuente y extraer el código CIN de ella. Cuando sus datos están en el navegador de alguien, esta puede hacer lo que quiera con ellos. La única prevención confiable es no enviar datos a su navegador, pero el gobierno no lo permitiría en esta situación. Un ligero “desánimo” es lo máximo que puede esperar lograr. Sólo se pueden evitar los métodos más obvios y sencillos, pero siempre habrá alternativas disponibles.
No te digo que no debas hacer esto, es tu sitio, haz lo que desees. Sólo me pregunto si vale la pena el esfuerzo.
yo hice esto
if ( ! empty( $cin)) { $cin = '
'. $cin .'
';
}
y luego por CSS el “pointer-events: none” a esa clase pero no funciona
También tengo este código js pero no sé dónde ponerlo.
document.getElementById('not-clicjable').addEventListener('contextmenu', function(e){
e.preventDefault();
});
Asegúrese de que los nombres de las clases coincidan exactamente entre JS y HTML (error tipográfico en su versión JS).
La forma correcta es ponerlo en cola de manera similar a lo que ha hecho en otros lugares, excepto que el enlace de acción sería «wp_enqueue_scripts» para los scripts de front-end. “admin_enqueue_scripts” es solo para scripts de back-end.
Puede parecer una tontería poner un código tan simple en su propio archivo separado. Si ya tiene otros scripts de interfaz en cola, este código podría agregarse a ese archivo. O, como no tiene dependencias, simplemente puede colocarlo en línea con su HTML dentro de su propio etiquetas. No importa demasiado en qué parte del HTML iría. Sugiero colocarlo cerca de donde aparece el código CIN ya que con eso está relacionado.
Tenga en cuenta que si alguien deshabilitara JavaScript en su navegador, podrá acceder al menú contextual.
este CSS parece funcionar sin ningún JavaScript:
.not-clickable {
-webkit-user-select: none; // safari support
user-select: none;
}
también esto:
.not-clickable {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
tal vez puedas darme tu opinión sobre este otro tema? https://wordpress.org/support/topic/switch-for-german-english-links/?view=all, gracias
Respuesta agregada a tu otro tema.