Trascinamento di dati all'esterno di un elemento HTML

Adobe AIR 1.0 e versioni successive

Il comportamento predefinito consente di copiare tramite trascinamento la maggior parte del contenuto in una pagina HTML. È possibile controllare il contenuto consentito per trascinarlo mediante proprietà CSS -webkit-user-select e -webkit-user-drag .

Sostituite il comportamento predefinito del trascinamento verso l'esterno nel gestore per l'evento dragstart . Chiamate il metodo setData() della proprietà dataTransfer dell'oggetto evento al fine di inserire i dati nel movimento di trascinamento.

Per indicare quali effetti di trascinamento supporta un oggetto source quando non ci si affida al comportamento predefinito, impostate la proprietà dataTransfer.effectAllowed dell'oggetto evento inviato per l'evento dragstart . È possibile scegliere qualsiasi combinazione di effetti. Ad esempio, se un elemento source supporta sia effetti copia e collegamento , impostare la proprietà su "copyLink" .

Impostazione dei dati trascinati

Aggiungete i dati per il movimento di trascinamento nel gestore per l'evento dragstart con la proprietà dataTransfer . Utilizzate il metodo dataTransfer.setData() per inserire i dati negli Appunti, passando nel tipo MIME e i dati da trasferire.

Ad esempio, se nell'applicazione vi era un elemento immagine, con l'id imageOfGeorge , è possibile utilizzare il seguente gestore eventi dragstart. Questo esempio aggiunge rappresentazioni di un'immagine di George in numerosi formati di dati che aumenta la probabilità di altre applicazioni di poter utilizzare i dati trascinati.

function dragStartHandler(event){         
    event.dataTransfer.effectAllowed = "copy"; 
     
    var dragImage = document.getElementById("imageOfGeorge"); 
    var dragFile = new air.File(dragImage.src); 
    event.dataTransfer.setData("text/plain","A picture of George"); 
    event.dataTransfer.setData("image/x-vnd.adobe.air.bitmap", dragImage); 
    event.dataTransfer.setData("application/x-vnd.adobe.air.file-list", 
                                new Array(dragFile)); 
}
Nota: quando si chiama il metodo setData() dell'oggetto dataTransfer , nessun dato viene aggiunto dal comportamento predefinito di trascinamento.