EchoEcho.Com KOMPLETTE WEBKURSER |
HJEM KURSER JAVASCRIPT AVANCERET |
EchoEcho.Com TOOLS & RESSOURCER |
|||||||||||||||||
| |||||||||||||||||||
|
|
|
|
KODEN TIL DINE UNDERSIDER Scriptet der skal kopieres og indsættes på hver af dine undersider ser således ud:
Du skal tilpasse denne linie så den passer til dine egne sider (d.v.s. skriv navnet på den side du ønsker der skal loades hvis framesettet åbnes almindeligt):
Desuden skal du tilføje en onLoad-event til <BODY>-tagget.
Efter tilføjelsen af disse stumper kode til hver af dine undersider er du klar til det sidste skridt: indtastning af koden på selve frameset-siden. Inden vi forklarer hvordan det gøres, vil vi dog lige bruge et par linier på at forklare scriptet der bruges på undersiderne. HVORDAN DET VIRKER Denne linie kontrollerer om siden er loaded i et frameset:
parent.location.href returnerer url'en på den overordnede frame. window.location.href returnerer url'en på den aktuelle side. Hvis disse to er ens - så er siden ikke loadet i et frameset. I det tilfælde vil denne linie blive udført:
Den åbner frameset siden på samme måde som hvis du havde indtastet: http://www.dinadresse.dk/framesetside.htm?http&&&www.dinadresse.dk/underside.htm. Tricket bad hele dette script er at der sendes informationer fra undersiden til framesettet via javascripts indbyggede window.location.search objekt. Undersiden kalder simpelthen framesettet med en url der ser således ud: www.minadresse.dk/framesetside.htm?blablabla Den tekst der følger efter spørgsmålstegnet kan læses via javascript - og det er denne information framesettet bruger til at finde ud af hvilken underside der skal loades ind. KODEN FOR FRAMESET SIDEN Dette er scriptet der skal kopieres og indsættes på din frameset side:
I eksemplet har vi benyttet et frameset med to kolonner på 50% bredde. Du skal naturligvis tilpasse frameset-koderne så de passer til dit eget frameset. (Og eventuelt indsætte flere document.write-sætninger hvis din side indeholder mere end to framevinduer) Derudover skal denne linie tilpasses:
Erstat defaultsub.htm med navnet på din underside der skal loades hvis framesettet bliver loadet normalt (ikke bliver kaldt fra en underside). Bemærk også at i denne linie:
er main er navnet på den "intelligente" frame. Du kan vælge et hvilket som helst navn for framen - vi brugte blot navnet main i vores eksempel. HVORDAN DET VIRKER Disse linier undersøger om en værdi er angivet efter et spørgsmålsteg i url-linien (d.v.s. om framesettet er loadet af en underside):
Hvis en værdi var angivet efter et ? i url'en, så vil subpage være lig med værdien. Ellers vil subpage være lig med navnet på den side du har angivet som default (i vores eksempel ville det være "defaultsub.htm"). Altså, hvis siden blev kaldt af en underside der blev forsøgt loadet udenfor framesettet, så vil url'en se nogenlunde således ud:: http://www.dinadresse.dk/framesside.htm?http&&&www.dinadresse.dk/subpage.htm Af tekniske årsager sender undersiden ikke URL'en som den er. Den sender &&& istedet for det normale :// som du almindeligvis ser i en URL. (Årsagen er at Netscape ikke vil acceptere at disse tegn sendes som en del af en URL). Denne URL - baseret på &&& - bliver oversat til en ægte URL af disse linier i scriptet:
Den sidste del af scriptet er de document.write sætninger der skriver HTML-koden for selve framesettet ind på siden.
Variablen subpage indgår i linien der angiver den "intelligente" frame. Denne variabel indeholder enten URL'en på en default underside, eller - hvis framesettet blev loadet af en underside - URL'en på den pågældende underside. Mens de øvrige document.write sætninger simpelthen er flad HTML skrevet ind på siden via javascript, så er det i denne ene linie at alt hekseriet sker. Det er i denne linie at javascript definerer et framevindue der loader den side der blev angivet efter spørgsmålstegnet i URL'en.
|
|
|
EchoEcho.Com KOMPLETTE WEBKURSER |
|
EchoEcho.Com TOOLS & RESSOURCER |
|||||||||||||||||||
(c) Copyright 1998-1999 NetKontoret - All Rights Reserved Opdateret: 09/20/2001 12:10:14 | |||||||||||||||||||||