usenet.dk

OSS for d.e.i.webdesign

Frames

Hvordan opdaterer jeg flere frames på en gang?

Der er flere forskellige måder at opdatere mere end 1 frame på. Da alle metoder kræver en længere forklaring er der oprettet separate sider til dem:

Ren HTML
Dette stiller krav til frames-layoutet, men virker i alle browsere, der understøtter frames.
onClick med JavaScript
Kræver selvsagt JavaScript-understøttelse af browseren, men stiller ingen krav til layoutet og er nemt af anvende.
onLoad
En variant af OnClick, der kan anvendes til at "binde" frames-sider sammen. Har desuden den fordel at browsere uden understøttelse herfor i det mindste får vist én af siderne.

Hvordan slår jeg rammerne fra i forb. med frames?

Rammerne i forbindelse med frames fjernes ved at indsætte FRAMEBORDER=0 i <FRAME>, så det f.eks kommer til at se således ud:

<FRAME FRAMEBORDER=0 SRC="foo.html">

Dette virker dog kun i browsere, der følger den kommende HTML 4.0 standard for frames! For tiden (18/10-98) er der ingen browsere på markedet, der gør det, så forfattere er henvist til at gøre som De Store Browserfabrikanter har ment er rigtigt.

Desværre er Netscape, Microsoft og W3C ikke helt enige om hvorledes man gør dette, så der skal (udover FRAMEBORDER i FRAME) indsættes BORDER=0 i FRAMESET.
Tillige er det nok fornuftigt at indsætte FRAMESPACING=0, da der ellers vil blive vist en lille kant i Microsoft Internet Explorer. Alt i alt skal der følgende til for at fjerne rammerne i de for tiden mest udbredte browsere:

  <FRAMESET FRAMEBORDER=0 BORDER=0 FRAMESPACING=0 ROWS="60%,40%">
    <FRAME FRAMEBORDER=0 SRC="foo.html">

Hvordan slår jeg frames fra, når folk forlader mine sider?

Dette gøres ved at indsætte teksten TARGET="_top" i <A HREF="..."> tagget, så det kommer til at se således ud:

<A HREF="http://dit.link.her/" TARGET="_top">

Bemærk at "top" skal skrives med småt, ellers vil det ikke virke.
Det er en meget god ide at spørge først, før du "framer" andres sider. Dels er det på kanten af det tilladte (sagen har været prøvet ved retten i USA) og dels er det slet ikke sikkert at "ofret" er interesseret i dette.


Hvordan sørger jeg for at andre ikke "indrammer" mine sider i deres frames?

På trods af ovenstående vejledning samt formaning til at bruge

<A HREF="http://dit.link.her/" TARGET="_top">

når man refererer til andres sider er det desværre ikke altid at dette råd bliver taget til efterretning. Man kan altså med andre ord riskere at andre folk viser ens sider i deres frames. Heldigvis findes der dog flere måder til at sikre sig mod denne form for misbrug. Den mest simple og den der garanteret virker er på alle sine sider at indsætte en reference til siden selv brugende TARGET="_top". Denne løsning bliver dog af nogle opfattet som lidt uelegant.

En anden løsning er at skrive
<META HTTP-EQUIV="Window-target" CONTENT="_top"> i sin <HEAD> sektion, men det virker ikke altid tilsigtet.

En metode som er blevet foreslået er at indsætte <BASE TARGET="_top"> i sin <HEAD> sektion, men det virker kun for de referencer man selv har på siden, så den kan sagtens blive indrammet af andre.

En løsning som virker er at bruge JavaScript og det begrænser selvfølgelig anvendeligheden men den er alligevel en brugbar løsning: man indsætter simpelthen følgende <BODY> kode:
<BODY onLoad="if (self != top) top.location = self.location">

Ingen af ovenstående forslag behøver dog at udelukke hinanden.


Hvordan sørger jeg for at browsere der ikke kan vise frames kan se mine sider?

Hvis man også vil sørge for at folk hvis browsere ikke understøtter frames kan se ens side uden problemer, skal man indsætte en speciel sektion for disse browsere. Det gøres ved efter <FRAME>......</FRAME> og før </HTML> at indsætte følgende:

<NOFRAMES>
<BODY>
Indsæt herefter indhold her, med HTML-koder til no-frames browsere
</BODY>
</NOFRAMES>

Bemærk at dette helst skal ligge inden i et <FRAMESET> tag, da der ellers kan opstå problemer

Mange mennesker mener at alt er i orden, hvis de indsætter en tekst som

Disse sider anvender frames. Din browser understøtter det ikke. Jeg vil anbefale at du henter den nyeste version af Navigator eller Internet Explorer hos Netscape eller Microsoft!
Dette hjælper bare ikke læseren på nogen måde. En bruger af en browser uden understøttelse for frames har fundet ud af det! Forfatteren behøver ikke fortælle ham/hende det!
Hvorfor ikke blot sætte nogle links til dine sider ind? I langt de fleste tilfælde anvendes frames til at lave en menu med. Her tager det måske 1 minut at kopiere denne menu ind mellem <NOFRAMES>. Kortere tid end det tager at forfatte ovenstående tekst!