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?
risposta
Si può provare a utilizzare il seguente codice jQuery:
$('input[type=text],textarea').bind('copy paste cut drag drop', function (e) {
e.preventDefault();
});
ah, grazie per la modifica. – selo
posso chiedere, che cosa fa il bind (sezione del codice di 'copia incolla cut' fare? Grazie! – think123
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
è 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.
Sì perché tutti sanno come tira fuori la console e inizia a manipolare dom – Esailija
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
@ think123 che non funziona se si 'preventDefault()' da copia/incolla/copia eventi AFAIK – Esailija
È 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.
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();
});
@Downvoter, Qualcosa non va nella mia risposta? Per favore, spiegami, così posso migliorarlo. – Starx
- 1. copia tutti i nomi dei metodi - Intellij
- 2. val() vs. testo() per textarea
- 3. Su copia hide textarea (JQuery)
- 4. Copia negli appunti per tutti i browser che utilizzano javascript
- 5. Alias per tutti i metodi sovraccaricati?
- 6. Conservazione del colore del testo mentre si copia la copia su Windows da Eclipse a Gmail?
- 7. @AspectJ pointcut per tutti i metodi all'interno del pacchetto
- 8. Metodo preferito per dichiarare i metodi in una classe
- 9. Consenti TUTTI i tipi di metodo nel percorso del pallone
- 10. Impedire una casella di testo da ritardo dovuto aggiornamenti veloci
- 11. Metodo generico per creare una copia profonda di tutti gli elementi di una raccolta
- 12. Chiamare i metodi del modulo genitore da una classe nidificata
- 13. Come stampare il testo da textarea?
- 14. Tutti i metodi di interfaccia sono astratti?
- 15. resignFirstResponder per tutti i campi di testo
- 16. Eseguire un metodo prima di tutti i metodi di una classe
- 17. Creazione di una textarea falso
- 18. ottiene il valore da textarea e crea una nuova textarea con il testo
- 19. BASH copia tutti i file tranne uno
- 20. Funzione "inArray" di Crossbrowser (senza jQuery)
- 21. codemirror-textarea ridimensionabile come una textarea standard
- 22. Perché non utilizzare l'oggetto per tutti i parametri del metodo?
- 23. Elenca tutti i metodi di una data classe, esclusi i metodi della classe genitrice in PHP
- 24. Copia testo da una finestra di Windows CMD negli appunti
- 25. javascript crossbrowser new Image()
- 26. knitr: Come impedire l'avvolgimento del testo nell'output?
- 27. Come selezionare tutti i campi di testo e le caselle di testo usando jQuery?
- 28. PHPUnit: mock tutti i metodi tranne alcuni
- 29. Copertura del codice per i metodi asincroni
- 30. modo Pythonic di convertire parametri per lo stesso standard in tutti i metodi di una classe
fornire il link al sito – Kamal
@ think123: ho una soluzione per la tua domanda cancellato precedente (come mai il mio codice mysql php mostra un solo td) –
oh quello è risolto (credo). Mi dispiace per quello – think123