2010-06-21 17 views
16

Quiero desactivar el mouse haga clic derecho en una página HTML. Tengo una página donde el usuario debe ingresar los detalles. No quiero que el usuario vea el menú que se muestra con el botón derecho del mouse. Por el contrario, quiero mostrar un menú personalizado. Sé que hay algunos complementos disponibles para hacer eso. Pero mi requisito no necesita ningún complemento.Cómo deshabilitar el mouse, haga clic derecho en una página web?

+1

Seguridad por oscuridad? –

+15

¿Cuál es el problema con el menú? Pertenece al usuario, así que déjalo en manos de él. * Solo imagine, un usuario no entiende una palabra y quiere usar algún servicio de traducción al que se puede acceder a través del menú contextual. * –

+8

¿Por qué quiere hacer esto? A muchos usuarios les resulta confuso si la página no funciona como todas las otras páginas web. –

Respuesta

41

No es profesional, de todos modos esto funcionará con javascript activado:

document.oncontextmenu = document.body.oncontextmenu = function() {return false;} 

También es posible que desee mostrar un mensaje al usuario antes de regresar falsa.

Sin embargo, tengo que decir que esto no se debe hacer generalmente porque limita las opciones de los usuarios sin resolver el problema (de hecho, el menú contextual se puede habilitar de nuevo muy fácilmente).

el siguiente artículo explica mejor qué esto no se debe hacer y qué otras acciones se pueden tomar para resolver los problemas relacionados comunes: http://articles.sitepoint.com/article/dont-disable-right-click

+1

Además, esta no es una solución para todos y todos, podrían simplemente desactivar js y hey presto. – Kezzer

+0

¿Por qué no simplemente 'document.oncontextmenu = function() {return false; } '? –

6

Puede usar el evento oncontextmenu para hacerlo.

Pero si el usuario desactiva javascript, entonces no podrá manejar esto.

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

desactivará el menú contextual.

5

En primer lugar, si usted está haciendo esto sólo para evitar que la gente que ve la fuente de su página; no funcionará, porque siempre pueden usar un atajo de teclado para verlo.

En segundo lugar, tendrá que usar JavaScript para lograr esto. Si el usuario tiene JS deshabilitado, no puede evitar el clic derecho.

Dicho esto, agregue esto a su etiqueta de cuerpo para desactivar los clics con el botón derecho.

<body oncontextmenu="return false;"> 
6

<body oncontextmenu="return false;"> funciona para mí en Google Chrome. No estoy seguro acerca de otros navegadores.

Nota, todo lo que alguien tiene que hacer es deshabilitar JavaScript para poder ver el menú del botón derecho de todos modos.

1

Por favor, no hagas eso, es muy molesto.

El menú correcto está ahí por una razón, y debe dejarse allí. Muchas extensiones de navegador agregan entradas al menú de clic derecho y el usuario debería poder usarlo en cualquier página que visite.

Además, puede utilizar toda la funcionalidad del menú contextual de otras maneras (atajos de teclado, menú del navegador, etc. etc.), por lo que bloquear el menú contextual tiene el único efecto de molestar al usuario.

PD: Si realmente no puede resistir la tentación de bloquearlo, al menos no coloque una ventana emergente que diga "no se permite el clic derecho".

+3

-1: Si bien esto presenta algunos puntos buenos, no responde la pregunta, por lo que debería ser un comentario. – Quentin

+0

@David Dorward: Sí responde la pregunta. Estoy diciendo que aunque puede bloquear la apariencia del menú del clic derecho, NO hay forma de bloquear realmente su ** funcionalidad **, ya que pueden volver a leerse de otras maneras.Bloquear el menú del botón derecho es una mala práctica, así que encontré una respuesta mucho mejor para explicar por qué no debería hacerlo. – nico

3

Hay un montón de ejemplos de esto que se puede encontrar a través de Google

Sin embargo, los usuarios pueden desactivar Javascript para detener esta "característica" muy molesto. Creo que deberías pensar en esto antes de implementarlo. En realidad, no va a proteger su contenido (si eso es lo que intenta lograr).

Hay un artículo here que ilustra lo molesto e inútil que es.

1

Prueba esto: escribir código de abajo en el cuerpo & sentir la magia :)

body oncontextmenu="return false" 
0

Puede utilizar Javascript para bloquear el botón derecho del ratón. Here es una secuencia de comandos para bloquear, haga clic derecho en el sitio web.

0

Puede hacerlo con Javascript y/o un atributo HTML (que es realmente un controlador de eventos Javascript de todos modos) como se describe aquí: http://www.codeproject.com/KB/aspnet/Disabling_the_right_click.aspx

<script language="javascript"> 
document.onmousedown=disableclick; 
status="Right Click Disabled"; 
Function disableclick(event) 
{ 
    if(event.button==2) 
    { 
    alert(status); 
    return false;  
    } 
} 
</script> 

y

<body oncontextmenu="return false"> 
... 
</body> 
0

// Desactivar la derecha haga clic en la escritura a través de código java script

<script language=JavaScript> 
//Disable right click script 
var message = ""; 
/////////////////////////////////// 
function clickIE() { 
    if (document.all) { 
     (message); 
     return false; 
    } 
} 

function clickNS(e) { 
    if (document.layers || (document.getElementById && !document.all)) { 
     if (e.which == 2 || e.which == 3) { 
      (message); 
      return false; 
     } 
    } 
} 
if (document.layers) { 
    document.captureEvents(Event.MOUSEDOWN); 
    document.onmousedown = clickNS; 
} else { 
    document.onmouseup = clickNS; 
    document.oncontextmenu = clickIE; 
} 

document.oncontextmenu = new Function("return false") 
</script> 

Click here to see semo

1
window.oncontextmenu = function() { 
return false; 
} 

podría ayudarle.

Cuestiones relacionadas