Automatiske links i venstre frame
Et af de mest almindelige frameset består af tre dokumenter, et frameset-dokument
og to dokumenter frameset-dokumentet "holder" sammen. Det kan f.eks. være et dokument
til venstre, med en menu der linker til indholdet til højre. Læs evt. mere om frames her... eller her...
Jeg havde brug for at linkene i venstre dokument automatisk blev opdateret når jeg lavede nye
"bogmærker" eller "anchors" i højre dokument. Jeg søgte alle mulige steder på nettet, og
fik tilsidst svar fra Johnny Winther Ronnenberg på HTML.dk's Community.
Man skal faktisk bare bruge to stykker scripts, i frameset-dokumentets headsektion skal flg. script indsættes:
<script>
var links = new Array();
var titel = new Array();
function getlink()
{
window.indhold.document.write("Overskrifter<br>")
for (i=0; i<window.hovedramme.document.anchors.length; ++i)
{
parent.links[i] = window.hovedramme.document.anchors[i].name;
parent.titel[i] = window.hovedramme.document.anchors[i].title;
window.indhold.document.write("<a href=\"#"+parent.links[i]+"\" target=\"hovedramme\">");
window.indhold.document.write(parent.titel[i]+"<br></a>");
}
window.indhold.document.write("\r-------\r\r</body>\r</html>")
}
</script>
Framesettet kan så se sådan ud:
<frameset cols="150,*" border="0">
<frame name="indhold" target="hovedramme" src="leftframe.htm">
<frame name="hovedramme" src="rightframe.htm">
</frameset>
<noframes>
<body>
<p>Denne Web-side bruger rammer, og din browser understøtter ikke rammer.</p>
</body>
</noframes>
</frameset>
Nederst i dokumentet til højre skal der indsættes følgende:
<script>
parent.getlink();
</script>
Denne kodestump gør at alle "bogmærker" eller anchors kan aflæses fra et andet dokument.
Du kan indsætte alle de anchors du vil, men husk også at udfylde titel. Se eks.:
<a name="3" title="Dette er en overskrift">
Det venstre dokument kan være helt tomt, men det skal være der.
Du kan se et eksempel i praksis her...
Tilbage til oversigt over JavaScriptsamling
|