Przeciąganie danych do elementu HTML

Adobe AIR 1.0 i starsze wersje

Zachowanie domyślne pozwala na przeciąganie do edytowanych obszarów strony tylko tekstu. Programista może określić, że element i jego elementy podrzędne będą edytowalne, umieszczając atrybut contenteditable w znaczniku otwierającym elementu. Możliwe jest również ustawienie całego dokumentu jako edytowalnego przez ustawienie właściwości designMode obiektu dokumentu na wartość "on" .

Alternatywne zachowanie przeciągania do wewnątrz można obsłużyć na stronie, obsługując zdarzenia dragenter , dragover i drop dla dowolnego elementu, który akceptuje przeciągane dane.

Włączanie przeciągania do wewnątrz

Aby obsłużyć gest przeciągania do wewnątrz, należy najpierw anulować zachowanie domyślne. Należy wykrywać zdarzenia dragenter i dragover wszystkich elementów HTML, które mają być używane jako cele upuszczania. W modułach obsługi dla tych zdarzeń należy wywołać metodę preventDefault() wywołanego obiektu zdarzenia. Anulowanie domyślnego zdarzenia pozwala nieedytowalnym obszarom na odbieranie upuszczania.

Pobieranie upuszczonych danych

Dostęp do upuszczonych danych można uzyskać w module obsługi dla zdarzenia ondrop :

function doDrop(event){ 
    droppedText = event.dataTransfer.getData("text/plain"); 
}

Aby odczytać dane ze schowka, należy użyć metody dataTransfer.getData() , przekazując typ MIME formatu danych do odczytu. Dostępne formaty danych można znaleźć za pomocą właściwości types obiektu dataTransfer . Tablica types zawiera ciąg znaków typu MIME dla każdego dostępnego formatu.

Po anulowaniu domyślnego zachowania w zdarzeniach dragenter lub dragover należy wstawić wszystkie upuszczone dane we właściwym miejscu w dokumencie. Nie istnieje żaden interfejs API do konwertowania położenia myszy na punkt wstawiania elementu. To ograniczenie utrudnia implementację gestów przeciągania typu wstawienie.