Derfor er frames en dårlig ide
Af Erik Ginnerskov
Opdateret: 20-10-2011
Det lyder som løsningen
Umiddelbart virker frames som en glimrende metode til at få sammensat en hjemmeside bestående af en menu, der går igen på flere sider og de sider, der gør brug af menuen til navigation.
Mange ulemper
Metoden indeholder bare en række ulemper:
- Søgemaskinerne gennemgår en hjemmeside helt ukritisk og finder undersider uden menu. Resultatet er, at der rundt omkring på nettet tid efter anden etableres en lang - og ofte uoverskuelig - række af links til undersider, som besøgende så ser uden menu og dermed uden mulighed for at navigere rundt på hjemmesiden.
- Dette problem kan man ganske vist 'scripte' sig ud af, men problemet er så bare i stedet, at der ikke kan linkes direkte til en side, der er relevant for et specifikt emne.
- Når man laver hjemmeside ved brug af frames, gør man det ofte med en bestemt størrelse (designervalgt) browservindue for øje. Men hvem siger, at brugerne af siden har deres browser åbnet i samme størrelse?
- Jeg har set sider, der er lavet med frames og i 1600×1200 pixels. De ser sikkert mægtig flotte ud i et så stort browservindue, men mange kan ikke engang gøre deres vindue så stort, fordi deres skærmopløsning er mindre end det. Og hvem siger, at browservinduet er åbnet i fuldskærm? Resultatet er, at der kommer scrollbarer lodret og vandret alle vejne - det ser som minimum totalt kikset ud og dele af en side er måske utilgængelig derved.
- Forestil dig, at du har en hjemmeside, hvor du med javascript har sørget for, at alle sider blive vist i sit dertil beregnede frameset. Du skal nu forklare en eller anden, hvor han kan finde en bestemt oplysning på din hjemmeside (jeg kender selv problemet - har haft det indtil for nylig, hvor jeg gik helt væk fra at benytte frames).
- Forklaringen kommer til at lyde noget i retning af dette:
- Min hjemmeside ligger på adressen http://server.dk/
- Skift til denne kategori i menuen
- Vælg denne side fra den nye menu
- Vælg dette punkt fra listen i toppen af siden.
Ikke nogen elegant forklaring, vel? Uden frames kan man lave et link direkte til et specifikt sted på en specifik side og alligevel have menuen og dermed navigationen til rådighed:
- http://server.dk/mappe/side.html#punkt
Kort og præcist.
- I browserens adressefelt skrives adressen på den side, der er åbnet i browseren. Men:
- Er siden inkluderet i et frameset, er det framesettets adresse, der vises. Hvis en bruger kopierer denne adresse ind som link i sin egen side, i den forventning, at et klik på linket vil genkalde det han ser på det aktuelle tidspunkt, bliver han snydt, fordi framesettet definerer en anden side indlæst.
- Uden frameset er det den aktuelle sides adresse, der vises. Et link etableret ud fra adressefeltets visning vil derfor altid vise tilbage til den specifikke side.
- Vi vil alle gerne have en masse besøgende på vores sider. Vi bliver glade, når vores besøgende anbefaler vores sider til andre. Dette kan for eksempel gøres ved at en besøgende sender sidens url til en anden via e-mail eller i en nyhedsgruppe
- Der er bare den hage ved det, at hvis siden ligger i et frameset, vil den url, som sendes videre, ikke nødvendigvis være url til den side, som den besøgende vil anbefale videre - det vil være url til den side, som default indlæses i det aktuelle frameset.
- Vil man have en folde-ud-menu, hvad enten den skal være lodret eller vandret, skal der afsættes plads i menurammen til den fuldt udfoldede menu, da den ikke kan overskride grænsen til indholdsrammen. Det betyder med andre ord et ikke uvæsentligt forbrug af plads i browservinduet.
- Uden frames vil de udfoldede undermenuer blot midlertidigt dække noget af sidens indhold.
- Endelig er der valideringsproblemet: Hvis dine sider skal kunne validere som strict (x)html, kan du slet ikke bruge frames, fordi du skal bruge attributten target i menuen - og den attribut eksisterer ikke i strict (x)html.
