Hemsida » Kodning » HTML5 Contenteditable Attribut Redigera webbinnehåll på fronten

    HTML5 Contenteditable Attribut Redigera webbinnehåll på fronten

    En av de nya funktionerna i HTML5 som lockade mig är den ursprungliga redaktören för framsidan. Den här funktionen används vanligtvis i Content Management Systems för att redigera innehåll direkt från webbläsaren och brukar byggas fullständigt med JavaScript och AJAX. HTML5 kommer att göra processen lite enklare att använda content attribut.

    Vad den gör

    När det tillämpas på något element, kommer detta attribut att tillåta oss att redigera innehållet i det, låt oss se exemplet nedan:

    Kakmuffin croissant. Faworki dansk kex. Jujubes pulver kaka kaka kex halvah halvah. Biscuit gummies gelékaka.

    Sött rulle tiramisu chokladstång socker plommonkarameller tootsie rullekarameller. Chokladkaka wypas sockervaddis Applicera sesam snaps lakris pastry croissant karameller fruktkaka pepparkaka kex. Donut karamell godisrottor.

    I det här exemplet har vi lagt till content ange och ställa in det Sann så innehållet blir redigerbart. Det finns två andra värden som kan läggas till för detta attribut;

    • falsk vilket gör motsatsen: innehållet kommer inte att redigeras
    • ärva; Det kommer att göra innehållet redigerbart när direktförälder kan också redigeras.
    • Visa demo

    Om du har kollat ​​in ovanstående demo kan du se att innehållet kan redigeras direkt från webbläsarna. Det bör dock noteras att det här elementet inte täcker lagringen av de ändringar som vi gjort, så när du uppdaterar sidan efter att du har gjort ändringen kommer innehållet att återgå.

    Så här reddar du ändringarna

    Att spara ändringar beror på var vi ska lagra data. vanligtvis sparas den i en databas. Men eftersom vi inte har databasåtkomst, kommer vi i denna handledning att visa dig hur du kan spara ändringarna i lokalt utrymme. För att göra det ska vi också använda lite jQuery för att göra koden enklare. Jag rekommenderade att du kolla på Fortid, Nuvarande och Framtid för Lokal Lagring för Webapplikationer som ytterligare referens.

    Först av allt, låt oss lägga till en knapp bredvid vårt innehåll.

     

    Sött rulle tiramisu chokladstång socker plommonkarameller tootsie rullekarameller. Chokladkaka wypas sockervaddis Applicera sesam snaps lakris pastry croissant karameller fruktkaka pepparkaka kex. Donut karamell godisrottor.

    Tanken här är att vi kommer att lagra ändringarna när knappen är klickad. Så, låt oss sätta denna händelse genom skriptet.

     var theContent = $ ('# content2'); $ ('# save'). ((klicka), funktion () var editedContent = theContent.html (); localStorage.newContent = editedContent;); 

    Den här koden skapar en ny nyckel i localStorage som innehåller den senaste ändringen i innehållet. Vi kan använda Firebug eller Utvecklarverktyg för att klargöra om data har lagrats eller inte, men se till att du trycker på knappen. För Firefox-användare, gå till DOM panelen och leta efter localStorage. I Chrome och Safari kan vi se det under fliken Resurser.

    Vi kan sedan hämta dessa data för att uppdatera innehållet enligt följande:

     om (localStorage.getItem ('newContent')) theContent.html (localStorage.getItem ('newContent'));  

    Koden ovan kommer att identifiera objektet nytt innehåll från localStorage och om det existerar, kommer det att passera värdet till det valda elementet, i det här fallet # content2. Vid den här tiden, när vi uppdaterar sidan, borde vi fortfarande se den förändring som vi gjort.

    • Visa demo
    • Hämta källa

    Slutlig tanke

    I de gamla tiderna kan du lägga till funktionen för avancerad editor som vi visat, kan ta timmar eller kanske till och med veckor. Idag tar det bara en sekund med detta attribut, content.

    Och enligt caniuse.com stöds detta attribut redan (förvånansvärt) i IE7 + och (överraskande) i andra webbläsare som följer: Firefox 12, Chrome 20, Safari 5.1 och Opera 12. Det betyder att vi kan använda detta element med fred i åtanke utan att behöva installera fallbacsk för äldre webbläsare.