Nonostante l'HTML5, il nuovo linguaggio di markup, si stia diffondendo a macchia d'olio tra i web developer, forse non tutti sono a conoscenza di alcune API - Application Programing Interface - poco diffuse, ma molto utili!
Prima di tutto, per chi ancora non lo sapesse, vediamo cos'è un API. Con questa semplice sigla di 3 lettere, si indica ogni insieme di procedure disponibili al programmatore per ottenere un'astrazione tra l'hardware e il programmatore o tra software a basso livello e quello ad alto, semplificando in questo modo il lavoro di programmazione. Le API, in sostanza, evitano ai programmatori di riscrivere ogni volta tutte le funzioni necessarie partendo da zero. Ma adesso parliamo delle API di HTML5 e vediamo quali sono le più utili!
1. Element.classList
L'API classList ci permette di modificare le classi CSS attraverso semplicissimi controlli JavaScript. Ad esempio:// Aggiungo una classe all'elemento ilMioElemento.classList.add("nuovaClasse"); // Rimuovo una classe dall'elemento ilMioElemento.classList.remove("classeEsistente"); // Controllo l'esistenza di una classe ilMioElemento.classList.contains("unaClasse"); // Eseguo il toggle di un elemento con una classe ilMioElemento.classList.toggle("altraClasse");
Per capire come funziona quest'API e come utilizzarla, puoi seguire questo articolo bit.ly/Qt7Twi.
2. Element.dataset
L'API Element.dataset fa si che modificare l'attributo data- diventi semplice ed intuitivo. Ad esempio:
/* Elemento di partenza: <div data-id="mioID" data-my-custom-key="valore inserito qui" data-name="mioDIV" id="mioDIV"> */ // Prendo l'elemento var elemento = document.getElementById("mioDIV"); // Prendo l'ID var id = elemento.dataset.id; // Recupero "data-my-custom-key" var customKey = elemento.dataset.myCustomKey; // Cambio il valore dell'attributo elemento.dataset.myCustomKey = "altro valore"; // L'elemento si trasforma in: <div data-id="mioID" data-my-custom-key="altro valore" data-name="mioDIV" id="mioDIV">Per saperne di più puoi consultare: http://mzl.la/Ud9GAR.
3. L'attributo autofocus
L'attributo autofocus fa si che un elemento, ad esempio un button o una textarea, venga focalizzato unicamente quando la pagina è pronta per l'animazione. Vediamo come:<input autofocus="autofocus" /> <button autofocus="autofocus">Prova!</button> <textarea autofocus="autofocus"></textarea>Puoi ottenere una maggiore documentazione su questa API a questo indirizzo: http://bit.ly/Xp3pZA.
4. ContextMenu
La nuova API ContextMenu ci permette di modificare il menù contestuale del browser senza necessariamente sovrascrivere gli elementi, ma comodamente aggiungendo degli elementi.<section contextmenu="ilmioMenu"> <!-- aggiungo il menu --> <menu type="context" id="ilmioMenu"> <menuitem label="Ricarica il post" onclick="window.location.reload();" icon="/images/refresh-icon.png"></menuitem> <menu label="Condividi su..." icon="/images/share_icon.gif"> <menuitem label="Twitter" icon="/images/twitter_icon.gif" onclick="goTo('//twitter.com/intent/tweet?text=' + document.title + ': ' + window.location.href);"></menuitem> <menuitem label="Facebook" icon="/images/facebook_icon16x16.gif" onclick="goTo('//facebook.com/sharer/sharer.php?u=' + window.location.href);"></menuitem> </menu> </menu> </section>Maggiori informazioni a: http://bit.ly/Qtc4YU.
5. window.postMessage
L'API postMessage, che è anche stata sostenuta da IE8, consente l'invio di messaggi tra le finestre e gli elementi dell'iFrame.// Dalla finestra iframe del dominio principale, invio un messaggio alla finestra iframe ospitata su un altro dominio var iframeWindow = document.getElementById("iframe").contentWindow; iframeWindow.postMessage("Questo è un messaggio dal primo dominio!"); // Recupero il messaggio dalla finestra iFrame del secondo dominio window.addEventListener("message", function(event) { // Controllo la provenienza del messaggio if(event.origin == "http://www.lucapipolo.it") { // Stampo il messaggio console.log(event.data); // Invio la ricevuta event.source.postMessage("Il messaggio è arrivato!"); } ]);
Ecco giunti alla fine di questo articolo. Vi lascio con un'ultima ma importantissima nota: controllate sempre la compatibilità con i browser prima di adoperare una qualsiasi API! E, sopratutto, leggete le documentazioni ufficiali prima di partire in quarta, eviterete tanti guai futuri!
0 commenti:
Posta un commento