2010-06-21 20 views
16

Voglio disabilitare il tasto destro del mouse su una pagina HTML. Ho una pagina in cui l'utente deve inserire i dettagli. Non voglio che l'utente veda il menu che viene visualizzato con il tasto destro del mouse. Piuttosto, voglio visualizzare un menu personalizzato. So che ci sono alcuni plugin disponibili per farlo. Ma il mio requisito non ha bisogno di alcun plugin.Come disabilitare il tasto destro del mouse su una pagina Web?

+1

Sicurezza da oscurità? –

+15

Qual è il problema con il menu? Appartiene all'utente quindi lasciatelo a lui. * Immagina, un utente non capisce una parola e vuole utilizzare un servizio di traduzione accessibile attraverso il menu di scelta rapida. * –

+8

Perché vuoi farlo? Molti utenti trovano confuso se la pagina non funziona come tutte le altre pagine web. –

risposta

41

E 'poco professionale, in ogni caso questo funzionerà con JavaScript abilitato:

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

si potrebbe anche voler mostrare un messaggio all'utente prima di tornare falsa.

Tuttavia, devo dire che questo non dovrebbe essere fatto in generale perché limita le opzioni degli utenti senza risolvere il problema (infatti il ​​menu di scelta rapida può essere facilmente abilitato nuovamente.).

Il seguente articolo spiega meglio perché questo non dovrebbe essere fatto e quali altre azioni possono essere intraprese per risolvere i problemi correlati comuni: http://articles.sitepoint.com/article/dont-disable-right-click

+1

Inoltre, questa non è una soluzione completa e completa, potrebbero semplicemente disabilitare js e hey presto. – Kezzer

+0

Perché non solo 'document.oncontextmenu = function() {return false; } '? –

6

È possibile utilizzare l'evento oncontextmenu per farlo.

Ma se l'utente disattiva javascript, non sarà possibile gestirlo.

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

disabiliterà il menu di scelta rapida.

5

In primo luogo, se si sta facendo questo solo per evitare che persone che visualizzano la fonte della tua pagina - non funzionerà, perché possono sempre usare una scorciatoia da tastiera per vederla.

In secondo luogo, è necessario utilizzare JavaScript per realizzare questo. Se l'utente ha disabilitato JS, non è possibile impedire il clic destro.

Detto questo, aggiungi questo al tag del tuo corpo per disabilitare i clic con il tasto destro.

<body oncontextmenu="return false;"> 
6

<body oncontextmenu="return false;"> funziona per me in Google Chrome. Non sono sicuro di altri browser.

Nota, tutto ciò che qualcuno deve fare è disabilitare JavaScript per vedere comunque il menu del tasto destro.

1

Si prega di non farlo, è molto fastidioso.

Il menu di destra è lì per un motivo, e dovrebbe essere lasciato lì. Molte estensioni del browser aggiungono voci al menu del tasto destro e l'utente dovrebbe essere in grado di usarlo in qualsiasi pagina che visita.

Inoltre è possibile utilizzare tutte le funzionalità del menu di scelta rapida in altri modi (scorciatoie da tastiera, menu del browser ecc. Ecc.) In modo che il blocco del menu di scelta rapida abbia l'unico effetto di infastidire l'utente.

PS: Se davvero non si può resistere alla tentazione di bloccarlo almeno non inserire un popup che dice "nessun clic con il tasto destro".

+3

-1: Mentre questo rende alcuni punti positivi, non risponde alla domanda quindi dovrebbe essere un commento. – Quentin

+0

@David Dorward: Risponde effettivamente alla domanda. Sto dicendo che, sebbene possa bloccare l'aspetto del menu del tasto destro del mouse, non c'è alcun modo per bloccare effettivamente la sua ** funzionalità **, in quanto sono raggiungibili in altri modi.Il blocco del menu di scelta rapida è una cattiva pratica, quindi ho trovato una risposta molto migliore per spiegare perché non dovrebbe. – nico

3

Ci sono molti esempi di questo che possono essere trovati tramite Google

Tuttavia, gli utenti possono disattivare Javascript per fermare questa "caratteristica" altamente fastidioso. Penso che dovresti davvero pensarci prima di implementarlo. In realtà non proteggerà i tuoi contenuti (se è ciò che stai cercando di ottenere).

C'è un articolo here che illustra quanto sia noioso e inutile.

1

Prova questa: scrivere il codice qui sotto sul corpo & sentire la magia :)

body oncontextmenu="return false" 
0

È possibile utilizzare Javascript per bloccare tasto destro del mouse. Here è uno script per bloccare il clic destro sul sito web.

0

È possibile farlo con JavaScript e/o di un attributo HTML (che in realtà è un gestore di eventi JavaScript in ogni caso), come descritto qui: 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> 

e

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

// Disabilita destra fare clic su script java tramite codice di 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; 
} 

potrebbe aiutarti.

Problemi correlati