Hvad er en iframe?
Et HTML-element, der indlejrer en anden webside, såsom en YouTube-afspiller, inden i den aktuelle side.
En iframe (inline frame) er et standard-HTML-element, <iframe>, der indlæser et separat webdokument inden i et rektangulært område på den aktuelle side. YouTubes videoafspiller leveres på denne måde: den omgivende side forbliver din, mens det indrammede område kører YouTubes egen afspillerkode.
Hvorfor YouTube bruger en iframe
Fordi afspilleren kører i sin egen ramme, er den isoleret fra resten af siden af sikkerhedshensyn, får automatiske opdateringer fra YouTube uden at den indlejrende side skal ændre noget, og kan skiftes mellem standarddomænet youtube.com og det privatlivsvenlige youtube-nocookie.com blot ved at ændre kilde-URL-en.
Almindelige iframe-attributter til videoindlejringer
De mest relevante er src (indlejrings-URL-en og dens parametre), title (for skærmlæsere), allow (hvilke tilladelser rammen får, såsom autoplay eller fullscreen), allowfullscreen og loading=”lazy” for ydeevne.
Hvordan en iframe passer ind i resten af en webside
En webside er normalt et sammenhængende HTML-dokument, men en iframe skaber en grænse: alt indeni er et separat dokument, med egne scripts, stilarter og browsingkontekst, gengivet inden i en boks du placerer med almindelig CSS. Denne isolation er lige så meget en sikkerhedsfunktion som en teknisk. En side, der indlejrer en YouTube-iframe, kan ikke direkte læse eller ændre, hvad der sker inde i YouTube-afspilleren, og afspilleren kan ikke direkte læse eller ændre resten af din side.
Et praktisk eksempel
Forskellen mellem en iframe og blot at linke til en side er straks synlig, hvis du sammenligner de to side om side. Et link, <a href="https://youtube.com/watch?v=ID">Se på YouTube</a>, tager en besøgende helt væk fra din side. En iframe, <iframe src="https://www.youtube-nocookie.com/embed/ID"></iframe>, holder den besøgende på din side, samtidig med at YouTubes afspiller vises inden i et defineret område. Src-attributtet udfører meget forskellige opgaver i hvert tilfælde: navigationsmål versus kilde til indlejret dokument.
Iframe kontra andre indlejringsteknikker
Iframes er ikke den eneste måde at hente eksternt indhold på, men de er den standardmæssige tilgang til en fuldt interaktiv tredjepartsapplikation som en videoafspiller. Alternativer såsom at indlejre et statisk billede eller et forhåndsvisningskort viser langt mindre: de kan ikke tilbyde afspilningskontroller, kan ikke streame videodata, og kan ikke reagere på brugerinteraktion på samme måde som en iframe-baseret afspiller gør. Se indlejringskode for at forstå, hvordan en iframe pakkes ind i den HTML, du faktisk indsætter på en side.
Sikkerhed og tilladelser for iframe
Moderne browsere behandler hver iframe som en separat sikkerhedskontekst, hvilket betyder at scripts inden i det indlejrede dokument ikke kan læse den overordnede sides cookies eller lokale lagring uden udtrykkelig tilladelse, og omvendt. Attributtet sandbox lader dig desuden begrænse, hvad en iframe ma gøre, men for en standard YouTube-afspiller er dette sjældent nødvendigt, da afspilleren allerede kører i et kontrolleret Google-miljo.
Ydeevne ved flere iframes på en side
Hver iframe på en side skaber en separat browsingkontekst med sit eget sæt af ressourcer, hvilket betyder at en side med flere indlejrede videoer kan bruge mærkbart mere hukommelse og regnekraft end en side uden dem. Derfor er doven indlæsning og begrænsning af antallet af samtidigt indlæste afspillere særligt vigtige på sider med mange indlejringer, såsom produktanmeldelser eller videogallerier.
Ofte stillede spørgsmål
Hvad er en iframe i enkle vendinger?
En iframe er et HTML-element, der indlæser en separat webside, såsom YouTubes videoafspiller, inden i et rektangulært område på den aktuelle side.
Er en iframe det samme som en indlejringskode?
En indlejringskode er hele HTML-udsnittet; iframen er det specifikke tag indeni, der faktisk udfører selve indlejringen.