Arrastar dados para fora de um elemento HTML

Adobe AIR 1.0 e posterior

O comportamento padrão permite que a maior parte do conteúdo em uma página HTML seja copiada pela ação de arrastar. Você pode controlar o conteúdo permitido a ser arrastado usando as propriedades CSS -webkit-user-select e -webkit-user-drag .

Substitua o comportamento padrão de arrastar para fora no manipulador para o evento dragstart . Chame o método setData() da propriedade dataTransfer do objeto de evento para colocar seus próprios dados no gesto de arrastar.

Para indicar que efeitos de arrastar um objeto de origem suporta quando você não está contando com o comportamento padrão, define a propriedade dataTransfer.effectAllowed do objeto de evento despachado para o evento dragstart . Você pode escolher qualquer combinação de efeitos. Por exemplo, se um elemento de origem suportar os efeitos copy e link , defina a propriedade como "copyLink" .

Definição dos dados arrastados

Adicione os dados para o gesto de arrastar no manipulador para o evento dragstart com a propriedade dataTransfer . Use o método dataTransfer.setData() para colocar dados na área de transferência, transmitindo o tipo MIME e os dados a transferir.

Por exemplo, se você tinha um elemento de imagem no seu aplicativo, com a id imageOfGeorge , você poderia usar o seguinte manipulador de eventos dragstart. Esse exemplo adiciona representações de uma imagem de George em vários formatos de dados, que aumenta a probabilidade de que outros aplicativos possam usar os dados arrastados.

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 você chama o método setData() de objeto dataTransfer , nenhum dado é adicionado pelo comportamento padrão de arrastar e soltar.