Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (1)
Emner

Et ønske til HTML5

Af Allan Ebdrup 24. september 2009 kl. 09:13

Det kunne være rart, hvis ifame elementet understøttede flow layout. Dvs. automatisk at indstille sin størrelse efter det indhold, der er i den. Eller måske nærmere, at en div havde en src attribut og det der blev hentet udefra, virkede som om det bare var HTML inde i div?en.

 

Udfordringen i dag

Der findes mange sites, der tilbyder små gadgets eller widgets, du kan indsætte på din side. Jeg skrev fx for nylig om uservoice.com. Når du indsætter sådan en widget, er det typisk noget JavaScript, du inkluderer fra et fremmed site. Når du gør det, har du åbnet for, at det site du inkluderer JavaScriptet fra, kan få fuld kontrol over det website du inkluderer scriptet på. Sikkerheden ryger lige ud af vinduet.

 

Bedre sikkerhed

En måde at forbedre denne situation på er at gøre som Google gør i Google Wave. I Google Wave kan du indsætte en gadget, der består af vilkårlig HTML og JavaScript. Og for at isolere gadgetkoden, så den ikke kan få fat i andre ting på siden end sig selv, indlejeres denne gadget i en Iframe. Iframes har en sikkerhed indbygget, så man ikke med JavaScript kan få fat i elementer af den side, der inkluderer ifamen. Dvs. du kan forholdsvis sikkert inkludere en iframe på din side, der viser noget fra et fremmed website.

 

Flow-layout

Udfordringen ved iframes er, at de har en fast bredde og højde. Google har løst dette i Google Wave ved at lave noget JavaScript, der smager på iframen og dynamisk tilretter størrelsen til det, der er i iframen (fx wufoo.com har løst det på samme måde). Det gør, at det virker som om det der er i iframen, faktisk bare er i en almindelig div, der ændrer størrelse efter indhold, såkaldt flow-layout. Der er følgende udfordringer ved denne løsning:

  • 1. Det er avanceret kode der skal til for hele tiden at stille iframens størrelse, når indholdet ændrer sig. Under [Google Wave hackathon](/artikel/12107-danske-udviklere-laver-boelgen-for-google-wave) fandt vi da også flere bugs i den implementation, der er i Google Wave. Nogle gange blev iframen for stor, så det var ekstra whitespace. Og nogle gange blev ifamen for lille, så den klippede indholdet, der var i den.
  • 2. Alle brugere der har JavaScript slået fra vil få en iframe med fast størrelse (ikke en udfordring for Google Wave, der kræver JavaScript alligevel, men en udfordring for andre gadgets, der understøtter script disabled)
  • 3. Nogle gadgets ændrer sig efter hvor meget plads de har at boltre sig på. Det kan blive til noget værre rod, hvor iframens størrelse ændres til at passe til gadget'et, hvorefter gadget'et ændrer sig fordi iframens størrelse er blevet ændret, hvorefter iframen ændres til at passe til gadget'et, hvorefter iframens størrelse ændres til at passe til gadget'et osv.
  • 4. Når det handler om styling, skal indholdet i iframen have sine egne definitioner af fx font og baggrundsfarve. Google Wave gør dette for dig, ved at pakke dit gadget ind i sin egen webside, men andre gadgets har ikke denne løsning. Det er ofte ønskeligt at et gadget automatisk passer ind i siden og automatisk benytter samme font og baggrundsfarve som siden er sat op til. Det skal gerne være sådan, at når du ændrer font på websitet, der inkluderer gadget'et, ændres fonten også i gadget'et.

 

Løsning

Som jeg skrev i indledningen, ville en løsning på dette eventuelt være, at en div får en src attribut. Den webside som src attributten peger på, skulle så hentes ind i maven på div'en. Ligesom at sætte innerHTML. Sikkerhedsmodellen skulle være lige som en iframe, men indholdet skulle layoutes af browseren som om det var indlejret HTML, inde i div'en med src attributten. Det vil betyde, at vi mere sikkert kan inkludere tredieparts gadgets på vores sider, at brugere med JavaScript slået fra også kan få gadgets og at vi nemt kan få gadgets, der passer ind i vores sider, selv når vi skifter font.

 

Et andet eksempel Jeg har lavet en webapplikation, hvor du kan indlejre et spørgeskema i din blog eller website. Spørgeskemaet består af op til flere sider. Når en blogger skal indlejre spørgeskemaet i sin blog, giver jeg ham/hende en stump HTML og JavaScript, vedkommende kan indsætte, der hvor spørgeskemaet skal være. Spørgeskemaet bruger automatisk samme font som bloggen. Her er et eksempel:

 

if (!Uia.g_isEmbedSupported) { document.write(""); }

  Men løsningen har et par udfordringer:

  1. Brugere der har javascript disabled får en iframe i stedet.
  2. Visse blogs, som fx wordpress.com, understøtter ikke, at man indsætter JavaScript i sin blog af sikkerhedsgrunde. Her bruger jeg også en Iframe i stedet.

Når jeg bruger en iframe, kan jeg ikke ændre størrelsen på den, når der skiftes side. Derfor er jeg nød til at sætte iframens størrelse så den passer til den længste side i spørgeskemaet. Alle de andre sider får derfor unødigt whitespace. Derudover bliver fonten og baggrundsfarven altid sat til den samme default, Verdana og hvid. Det er jo ikke sikkert, at Verdana og hvid passer særligt godt ind i layoutet på bloggen. Du kan prøve at slå JavaScript fra i din browser og hente dette blogindlæg igen, for at se problemet selv. Det alle gadget-folk har brug for, er en iframe med flow-layout eller en src attribut på div'er. Eller kan du se en anden smartere løsning på problemet'

UPDATE 25. september 2009, resultat af afstemning so-far.

Har du nogensinde inkluderet JavaScript fra en trediepart, på din blog eller website? 
Option Count
10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Ja 33
 40%
Nej 49
 60%
**Total** 82
  










Kan du se en idé i, at have iframes med flow-layout?  
Option Count
10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Ja 48
 70%
Nej 21
 30%
**Total** 69

Hvad synes du om sikkerheden i at inkluderer JavaScript fra trediepart?

63 stemmer, gennemsnit: Tvivlsom

Send Tweet
Udskriv
Billede af Allan EbdrupOm Allan Ebdrup

Kommentarer (1)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Jesper Kristensen 24. sep. 2009 - 10.29
 
Re: Et ønske til HTML5

Hørt
(Eller http://www.w3.org/TR/xbl/)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Finansminister afliver teori om NemID som spionsoftware

Udgivet 22. maj 12.12Opdateret 22. maj 12.12

Voxpop: GOTO giver inspiration

Udgivet 22. maj 11.26Opdateret 22. maj 11.26

Studerende taler ud om kæmpehul: Pærelet at hacke 100.000 danske routere

Udgivet 22. maj 10.44Opdateret 22. maj 12.04

Datamatikere i Skive får gratis smartphone til .Net-udvikling

Udgivet 22. maj 10.28Opdateret 22. maj 10.28

Københavns Kommune satser 50 millioner på Drupal-platform

Udgivet 22. maj 10.06Opdateret 22. maj 10.06

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Seneste debat

  1. Microsoft fjerner umoderne bling-effekter i Windows 8

    11 comments.
    Last update 2 minutter 37 sekunder
    Skrevet af Simon Friis Vindum
  2. Studerende taler ud om kæmpehul: Pærelet at hacke 100.000 danske routere

    6 comments.
    Last update 21 minutter 33 sekunder
    Skrevet af Johnny Rose Larsen
  3. Dart-pilen sidder lige midt i skiven

    14 comments.
    Last update 58 minutter 42 sekunder
    Skrevet af Torben Mogensen
  4. Københavns Kommune satser 50 millioner på Drupal-platform

    2 comments.
    Last update 1 time 9 minutter
    Skrevet af Jens Beltofte Sørensen
  5. Partner solgte Netgroups 'test-platform' med overskriften 'fuld redundans'

    9 comments.
    Last update 1 time 12 minutter
    Skrevet af Patrick Theander
  6. ITU-studerende kan støvsuge alle danskeres CPR-numre

    19 comments.
    Last update 1 time 24 minutter
    Skrevet af Frithiof Andreas Jensen
  7. Das NemID trojaner - paranoia eller rettidig omhu?

    14 comments.
    Last update 1 time 32 minutter
    Skrevet af Troels Møller
  8. Enhedslisten bider sig fast: VIL have svar på, om NemID er spionsoftware

    21 comments.
    Last update 1 time 41 minutter
    Skrevet af Troels Møller

Mere debat »

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300