È impossibile per impedire agli utenti da copiare e incollare su un sito Web. Utenti esperti possono visualizzare il codice sorgente HTML ed eseguire l'override le funzioni JavaScript che impediscono loro di estrarre informazioni dalla tua pagina Web o incollare i nuovi dati in controlli di input. Tuttavia, è possibile utilizzare JavaScript per rendere più difficile per molti utenti di eseguire copia e incolla sul tuo sito Web. JavaScript sarà catturare le battiture di un utente, determinare se vengono premuti tasti di copia o Incolla e informare l'utente che il suo sito ora ammette queste azioni.
Istruzioni
1
Aprire Blocco note o qualsiasi programma di elaborazione testi e aggiungere il seguente codice:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional / / EN" "l'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns = "l'http://www.w3.org/1999/xhtml" >
< head >
< title > Test blocco di copia & incolla < / title >
< script >
< / script >
< / head >
< corpo >
< / body >
< / html >
Questo crea un documento HTML vuoto.
2
Aggiungi questo codice dopo il tag "< body >":
< textarea id = "TextArea1" cols = "20" righe = "2" >< / textarea >
< input type = "testo" id = "TextBox1" / >
Questo crea un'area di testo e una casella di testo.
3
Aggiungere questo codice JavaScript dopo il tag "< script >":
window.onload = function () {
var objTextArea = document.getElementById('TextArea1');
objTextArea.onkeydown = checkKey;
var objTextBox = document.getElementById('TextBox1');
objTextBox.onkeydown = checkKey;
};
Questo codice associa i gestori eventi per i controlli casella di testo e textarea dopo il caricamento della pagina. Quando un utente preme un tasto mentre è posizionato in uno di questi controlli, il browser esegue la funzione denominata "checkKey." Aggiungere ulteriori controlli a questo blocco di codice utilizzando la stessa logica. Ad esempio, se si dispone di un'altra casella di testo denominata "TextBox2", aggiunge il seguente codice alla funzione:
var objTextBox2 = document.getElementById('TextBox2');
objTextBox2.onkeydown = checkKey;
Questo blocco di codice verrà associare un gestore eventi a una casella di testo denominata TextBox2. La funzione risultante sarebbe simile a questa:
Window. onLoad = function () {
var objTextArea = document.getElementById('TextArea1');
objTextArea.onkeydown = checkKey;
var objTextBox = document.getElementById('TextBox1');
objTextBox.onkeydown = checkKey;
var objTextBox2 = document.getElementById('TextBox2');
objTextBox2.onkeydown = checkKey;
};
4
Aggiungere questa funzione JavaScript dopo la funzione precedente:
Function checkKey(e) () {
var keyPressed;
if (!e) var e = window.event;
if (e.keyCode) keyPressed = e.keyCode;
else if (e.which) keyPressed = e.which;
if (keyPressed == 17)
alert("Sorry. Copy and paste not allowed");
}
Questa funzione determina la chiave che un utente preme e posizionato nel controllo casella di testo o textarea. Se un utente preme il tasto "Ctrl", che ha un keycode di 17, il browser visualizza un messaggio di avviso. Personalizzare questo messaggio modificando il testo.
5
Salvare il file con estensione ". html" e aprirlo in un browser web.
6
Digitare un valore nella textarea ed evidenziarla. Premere "Ctrl + C per copiarlo. Si vedrà il messaggio di avviso. Ripetere il processo con la casella di testo. Il codice JavaScript si impedirà di eseguire copia e incolla.
Consigli & Avvertenze
- Applicare la stessa logica per ogni elemento di input che si desidera proteggere. Includere un valore di ID univoco per ogni controllo di input che si desidera proteggere da copiare e incollare.