INDICE

SELEZIONARE E COPIARE IL CONTENUTO DI UN'AREA DI TESTO

A volte si trovano delle parti di codice scritte all'interno di un'area di testo di un modulo; è poi possibile cliccare su un link che permette di evidenziare il testo stesso. Con il classico Copia - Incolla (attuabile o dal menu di contesto attivato dalla pressione del tasto destro del mouse, o dal menu Modifica - Copia) è possibile copiare il testo stesso ed in seguito incollarlo in un proprio documento.
Molto più raramente la pressione dello stesso tasto permette sia di selezionare che di copiare il testo, e noi vi mostreremo come fare.
Si tratta di inserire nel form, oltre all'area di testo un pulsante o una parola calda tali che, al clic del mouse, attivino una funzione che permetta di selezionare e di copiare il testo. Praticamente, se abbiamo dato al form il nome prova e all'area di testo il nome testo, dovremo dare un'istruzione del tipo:
Seleziona, nel documento corrente, il testo inserito nell'area di nome prova, e quindi copialo nella clipboard, pronto per essere incollato.
Segue la spiegazione del codice ma, volendo, è possibile copiarlo direttamente.

Passo uno

Inserire, fra i tags <HEAD> ed </HEAD> il seguente codice javascript:

<script language="JavaScript">Dichiarazione del fatto che si sta inserendo un codice JavaScript
function copia(area) { Dichiarazione della funzione che ci permette di ottenere il risultato. Notare che, oltre al nome della funzione, che abbiamo chiamato copia, abbiamo inserito, tra parentesi, la parola area. Questo permette di usare più volte la stessa funzione per far copiare diverse aree di testo (ovviamente una alla volta!).
var appoggio=eval("document."+area) Viene creata una stringa concatenando, attraverso il +, document. ed il contenuto della variabile area: il tutto viene memorizzato nella variabile appoggio. Il nome di questa variabile, come delle altre, può essere scelto a piacere. Notare che area è lo stesso termine che abbiamo inserito tra parentesi quando abbiamo dichiarato la funzione.
appoggio.focus() La variabile appoggio, nella quale è stato memorizzato il contenuto dell'area di testo, viene posta al centro dell'attenzione (mediante la proprietà focus()). Solo così sarà possibile agire su di essa.
appoggio.select() Il testo viene selezionato.
intervallo=appoggio.createTextRange() Viene creato un intervallo di testo con lo stesso contenuto della variabile appoggio e memorizzato nella variabile che abbiamo chiamato intervallo.
intervallo.execCommand("Copy") Viene attivato il comando Copy che è, a tutti gli effetti, lo stesso comando chiamato dal menu Modifica o attraverso il tasto destro del mouse.
}Parentesi di chiusura della funzione
</script>Fine script.
NOTA: come in tutti gli scripts javascript, occorre fare molta attenzione alla sintassi per non generare un messaggio d'errore. In particolare, javascript distingue fra maiuscole e minuscole.

Passo due

Inserire, dopo il tag <BODY>, questo codice:

<form name="prova">
<textarea name="selezione1" rows="3" cols="25"> Premendo il bottone, questo testo sarà evidenziato e copiato: prova ad incollarlo in un documento di testo!
<input type="button" onclick="copia('prova.selezione1')" value="Copia il codice" name="sele">
</textarea> </form>
Notare che il bottone di nome sele si attiva al clic del mouse e chiama la funzione copia(prova.selezione1). prova è il nome che abbiamo dato al form, mentre selezione1 è il nome che abbiamo dato all'area di testo. Quando la funzione viene chiamata, automaticamente, prova.selezione1 viene sostituita al parametro area; di conseguenza sarà possibile far copiare diverse parti di testo sempre chiamando la stessa funzione: occorrerà soltanto, ogni volta, sostituire i nomi appropriati per il form e per l'area di testo. Così ad esempio, se abbiamo chiamato un form primo e l'area di testo testo, chiameremo la funzione scrivendo:"copia('primo.testo')"

Si ottiene il seguente risultato:


Potete copiare il codice dello script:


E qui potete copiare il codice per il form:


Notiamo infine che, per evidenziare e copiare una parte di codice, non è necessario usare un bottone : basta una parola calda oppure una piccola immagine. In entrambi i casi, il codice javascript sarà lo stesso, mentre cambierà il codice per il form:

  Copia il codice!

                   

In entrambi i casi la chiamata alla funzione viene effettuata attraverso un semplice collegamento ipertestuale non a un documento, ma allo script. L'icona è memorizzata con il nome copia.jpg


INDICEINDIETRO

©2002 www.webfract.it