Przeciąganie danych na zewnątrz elementu HTML

Adobe AIR 1.0 i starsze wersje

Domyślne zachowanie umożliwia kopiowanie przez przeciąganie większość treści strony HTML. Programista może sterować treścią, która może być przeciągana za pomocą właściwości CSS -webkit-user-select i -webkit-user-drag .

Domyślne zachowanie przeciągania na zewnątrz należy przesłonić w module obsługi dla zdarzenia dragstart . Aby wstawić własne dane do gestu przeciągania, należy wywołać metodę setData() właściwości dataTransfer obiektu zdarzenia.

Aby wskazać, które z efektów przeciągania obsługiwane są przez obiekt źródłowy, jeśli domyślne zachowanie nie jest przekazywane, należy ustawić właściwość dataTransfer.effectAllowed obiektu zdarzenia wywołanego dla zdarzenia dragstart . Można wybrać dowolną kombinację efektów. Na przykład, jeśli źródłowy element obsługuje efekty kopiowanie i łączenie , właściwość należy ustawić na wartość "copyLink" .

Ustawianie przeciąganych danych

Dane dla gestu przeciągania należy dodać w module obsługi dla zdarzenia dragstart za pomocą właściwości dataTransfer . Aby wstawić dane do schowka, należy użyć metody dataTransfer.setData() , przekazując typ MIME i dane do przeniesienia.

Na przykład, jeśli w aplikacji programisty znajduje się obraz o identyfikatorze imageOfGeorge , można użyć następującego modułu obsługi zdarzenia dragstart. Ten przykład dodaje reprezentacje obrazu George'a w kilku formatach danych, co zwiększa prawdopodobieństwo, że inne aplikacje będą mogły użyć przeciąganych danych.

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)); 
}
Uwaga: Wywołanie metody setData() obiektu dataTransfer powoduje, że żadne dane nie zostaną dodane przez domyślne zachowanie przeciągania i upuszczania.