2012-04-09 12 views
7

Sto lavorando a un software di digitazione online. Nel software di battitura tutto sta andando bene, ma ho il problema degli utenti disonesti che potrebbero digitare il testo nella textarea, copiarlo, quindi ricaricare la pagina (quindi resettare il timer) e incollarla subito. Quindi stavo pensando di utilizzare qualcosa come evt.preventDefault(); quando javascript rileva la pressione del tasto ctrl/cmd insieme alla chiave C. Ma poi ho capito che l'utente poteva sempre andare sulla barra dei menu per premere Edit -> Copy. Quindi mi stavo chiedendo, esiste un metodo cross-browser per disabilitare entrambi i metodi di copia?Metodo cross-browser per impedire tutti i metodi di copia del testo da una textarea?

+0

fornire il link al sito – Kamal

+0

@ think123: ho una soluzione per la tua domanda cancellato precedente (come mai il mio codice mysql php mostra un solo td) –

+0

oh quello è risolto (credo). Mi dispiace per quello – think123

risposta

4

Si può provare a utilizzare il seguente codice jQuery:

$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) { 
    e.preventDefault(); 
}); 
+0

ah, grazie per la modifica. – selo

+0

posso chiedere, che cosa fa il bind (sezione del codice di 'copia incolla cut' fare? Grazie! – think123

+0

funzione bind attribuisce i gestori di eventi per gli elementi. "Copia incolla taglio" ci dice, che gli eventi dovrebbero sparare la funzione di allegato. – selo

1

è possibile bloccare alcuni eventi, ma prevenire tale comportamento degli utenti non è possibile. L'utente può sempre copiare il testo dal nodo DOM tramite la console del browser.

+0

Sì perché tutti sanno come tira fuori la console e inizia a manipolare dom – Esailija

+0

La manipolazione di Oh DOM non è un problema, voglio dire se l'utente non ha capito e manipolazione DOM, e conosceva solo cose come Modifica -> Copia e tasto destro del mouse -> Copia (tasto destro del mouse non è un problema) e CTRL-C e CMD-C. Questo è quello di cui mi sto principalmente preoccupando. – think123

+1

@ think123 che non funziona se si 'preventDefault()' da copia/incolla/copia eventi AFAIK – Esailija

2

È forse potrebbe fare qualcosa di simile:

var txtArea = document.getElementById("YourTextAreaId"); 
txtArea.oncopy = function() { return false; } 
txtArea.onpaste = function() { return false; } 
txtArea.oncut = function() { return false; } 

Ma anche allora, l'utente può copiare il contenuto con altri mezzi, come suggerito nella sua interrogazione.

0

Bind i gestori di eventi e prevenire la funzione di appunti, come ad esempio:

$('textarea').on('copy paste cut drag drop', function (e) { 
    e.preventDefault(); 
}); 
+0

@Downvoter, Qualcosa non va nella mia risposta? Per favore, spiegami, così posso migliorarlo. – Starx

Problemi correlati