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.