čtvrtek 16. července 2009

Vyzkoušejte si nové drag and drop API ve Firefoxu 3.5

Jednou z novinek HTML5 je API pro drag & drop. Implementuje ho i nedávno vydaný Firefox 3.5. API nevzniklo na zelené louce, bylo vytvořeno dle implementace v Internet Exploreru a její kopie v Safari.

Pro implementaci drag & drop podle nového API již není třeba používat nízkoúrovňových událostí typu mousedown a mousemove, můžete sáhnout po událostech typu dragstart, dragend atd.

Demo

Výsledek si můžete ve Firefoxu 3.5 vyzkoušet na sadě ukázek.

Zdrojový kód je diskutovaný v článku HTML5 drag and drop in Firefox 3.5.

Připravil jsem i minimální kód potřebný pro zahájení drag & drop procesu.

Jelikož počet vývojářů, kteří používají nativní JavaScript klesá, klesá i význam téhle zprávy. Z událostí DOMu se pomalu stává cosi nenápadného, co se schovává kdesi dole pod frameworkem, který jejich obsluhu bezchybně zvládne.

I přesto je dobré minimálně vědět, že takové nové API existuje, abyste jednou nebyli překvapeni, a nepřemýšleli, kde se ta záhadná událost dragleave vlastně vzala.

Aktualizace

Vizionáře v oboru webových aplikací jistě nadchne fakt, že tento mechanismus funguje i napříč doménami, tj. můžete provádět drag & drop třeba mezi Emailem na Seznamu a Google Docs. A na těchto aplikacích pak záleží, zda se spolu dokáží domluvit.

8 komentářů:

  1. presne tak aj ja som nedávno kôli autocomplete nasadil na svojom webe jQuery

    OdpovědětVymazat
  2. jestli jsem to pochopil dobře, tak se dá přetahovat i mezi okny, nebo ne?

    OdpovědětVymazat
  3. @Aichi: Já věřím, že jo, ale pořádně jsem nestudoval, zda to nemá nějaká omezení jako stejné domény apod.

    OdpovědětVymazat
  4. @Aichi Vyzkoušel jsem a funguje mi to i mezi okny napříč doménami. Zkus si: http://jdem.cz/brqa9 Cíl může být jak v framu, tak samostatné okno, mezi tím není rozdíl. Ladil jsem to jen pro Firefox 3.5.

    OdpovědětVymazat
  5. Pěkné, zdá se, že to dokonce funguje i mezi Safari a Firefoxem, pokud jsem to dobře pochopil. Ono by to snad mohlo teoreticky při vhodné konstelaci hvězd fungovat i mezi úplně cizí aplikací a browserem.

    OdpovědětVymazat
  6. Vyzkoušeno a musím říci, že je to perfektní. Doporučuji všem. Díky za tip.

    OdpovědětVymazat
  7. Perfektní záležitost, ovšem v ještě poměrně dost rozšířeném IE7 nefunguje(kdo by to čekal :-)). Takže pokud chcete stránky fungující (téměř)všude , tak se tohle zatím použít nedá.

    OdpovědětVymazat
  8. Anonym: To API v IE do jisté míry funguje, ale pro některé ukázky to skutečně neplatí.

    OdpovědětVymazat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.