Trascinamento di dati in un elemento HTML
Adobe AIR 1.0 e versioni successive
Il comportamento predefinito consente solo il testo da trascinare nelle aree modificabili della pagina. È possibile specificare di poter modificare un elemento e i relativi elementi secondari compreso l'attributo
contenteditable
nel tag di apertura dell'elemento. È possibile inoltre rendere modificabile un intero documento impostando la proprietà
designMode
dell'oggetto Document su
"on"
.
È possibile supportare un comportamento alternativo di trascinamento verso l'interno in una pagina gestendo gli eventi
dragenter
,
dragover
e
drop
per qualsiasi elemento in grado di accettare dati trascinati.
Abilitazione del trascinamento verso interno
Per gestire il movimento di trascinamento verso interno, è necessario prima annullare il comportamento predefinito. Intercettate con un listener gli eventi
dragenter
e
dragover
su qualsiasi elemento HTML che desiderate utilizzare come destinazione di rilascio. Nei gestori di questi eventi, chiamate il metodo
preventDefault()
dell'oggetto evento inviato. L'annullamento del comportamento predefinito consente ad aree non modificabili di ricevere un rilascio.
Recupero di dati rilasciati
È possibile accedere ai dati rilasciati nel gestore dell'evento
ondrop
:
function doDrop(event){
droppedText = event.dataTransfer.getData("text/plain");
}
Utilizzate il metodo
dataTransfer.getData()
per leggere i dati negli Appunti, passando nel tipo MIME del formato dati da leggere. È possibile individuare i formati di dati disponibili mediante la proprietà
types
dell'oggetto
dataTransfer
. L'array
types
contiene la stringa di tipo MIME di ciascun formato disponibile.
Quando si annulla il comportamento predefinito negli eventi dragenter o dragover, siete responsabili dell'inserimento di tutti i dati rilasciati nella posizione corretta del documento. Non esistono API per convertire la posizione del mouse in un punto di inserimento all'interno di un elemento. Tale limitazione può rendere difficile l'implementazione dei movimenti di trascinamento di tipo inserimento.
|
|
|