Hvad er websidens url?

Der gives tilfælde, hvor du har brug for at kunne skrive websidens url ud som tekst på siden eller som en tekststreng i noget JavaScript.

F.eks. er denne sides url:

Linien lige herover er lavet med følgende simple JavaScript:

<script type="text/javascript">
document.write(document.location)
</script>

Anvendelse

Den anvendelse der ligger umiddelbart for knytter an til brugen af base-markøren:

Denne side er forsynet med en sådan, der ser ud som følger:

<base href="http://www.webdesign101.dk/" />.

Den praktiske konsekvens af dette er, at jeg kan referere til en vilkårlig fil på mit websted ved en konkret, direkte stiangivelse der refererer til webroot, altså til webstedets domæne. Eksempelvis kan jeg fra en vilkårlig webside på www.webdesign101.dk referere til denne side med:

javascript/eksempler/eksempel_2.php

Min mistelten i dette spil er den reference, jeg har i bunden af alle mine websider:

<a href="#toppen">
<img id="pilop" src="res/grafik/arrowup.gif"
alt="Gå til toppen af siden" width="21" height="17" />
</a>

Jeg har fremhævet “problemet” med fed skrift. Det er en reference til et bogmærke med en id som en ens og som er "toppen". Men når jeg har indsat base href="url" begynder browseren at lede efter dette bogmærke i standardsiden i web root, som regel index.html, eller, i mit tilfælde, index.php. I bedste fald sker der så det ved et klik på pilop, at webstedets forside indlæses. I værste fald gi'r browseren op og komme rmed en 404-fejl – Siden findes ikke.

Vejen ud af dette problem er at udforme linket til bogmærket som:

<a href="javascript/eksempler/
-->  eksempel1.php#toppen">
-->  Gå til toppen af siden</a>

– altså indsætte sti og filnavn.

Den idé er imidlertid temmelig dødfødt, for det betyder, at min "footer" skal være forskellig på alle sider. Ellers kan jeg i princippet nøjes med en eneste til de 2-300 sider, det efterhånden drejer sig om.

Jeg kan imidlertid skrive den aktuelle sides url ind i et link ved hjælp af følgende script:

<script type="text/javascript">
document.write("<a href='"+document.location+
-->  "'>
Gå til toppen af siden</a>")
</script>

Virkningen af dette er, at jeg får udskrevet et link af følgende udseende:

<a href="javascript/eksempler/eksempel1.php">
Gå til toppen af siden</a>

Og det er for så vidt tilstrækkeligt, idet et klik på dette link vil genindlæse siden, hvilket automatisk vil medføre, at det er sidens top, der kommer øverst i browservinduet.

Men det kunne jo tænkes at jeg ville lave et link til et andet bogmærke end lige det, jeg har brugt som eksempel, så derfor føjer jeg bogmærket til min JacaScript tekststreng:

<script type="text/javascript">
document.write("<a href='"+
-->  document.location+"#toppen'>
Gå til toppen ...</a>")
</script>

Og slutresultatet på denne lille øvelse bliver så:

Som altid, når du konkatenerer JavaScript og tekststrenge skal du være opmærksom på at holde tingene adskilt ved at brug de to forskellige slags anførselstegn som vist i eksemplerne, eller ved at "escape" tekststrengens anførselstegn, som vist herunder:

<script type="text/javascript">
document.write("<a href=\""+
-->  document.location+"#toppen\">
Gå til toppen ...</a>")
</script>

Denne teknik kan selvfølgelig bruges, uanset om du bruger base href-metoden eller ikke.

Denne side er senest opdateret: 11. December, 2006