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.
|
|
|