XaraX: Navigation vorwiegend via DOM erstellen

Beitrag lesen

Hallo Jos.

<a href="javascript:window.location.replace('Zielseite.html')">Linktext</a>

Persönlich halte ich das für keine gute Idee, bitte nimm .href, damit der User auch zurück kann.

Meine 1. Frage: wie kann ich das mit dem nachfolgenden Script erreichen ?

ziel[0]="javascript:window.location.replace('Zielseite.html')";

Meine 2. Frage: wie würde man einen Eventhandler (z.B. onmouseover) in einen via DOM erzeugten Link integrieren und diesem Eventhandler eine Funktion zuweisen ?

Das ist nicht ganz ohne! http://www.javamagazin.de/itr/online_artikel/psecom,id,347,nodeid,11.html - wie im letzten Beitrag von mir gesagt, habe ich darauf durch .innerHTML verzichtet.

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
var ziel = new Array();

ziel[0] = "Zielseite1.html";
ziel[1] = "Zielseite2.html";
ziel[2] = "Zielseite3.html";

var text = new Array();

text[0] = "Zielseite 1";
text[1] = "Zielseite 2";
text[2] = "Zielseite 3";

function erzeuge_verweis()
{
ebene = document.getElementById('ebene01');
for (i = 0; i < ziel.length; i++)
{
link = document.createElement('a');
link.setAttribute('href',ziel[i]);
link.appendChild(document.createTextNode(text[i]));

link.className = "linkeigenschaften";

schmeiß das raus und arbeite mit vernünftigen CSS-Angaben (#ebene01 > a)

ebene.appendChild(link);
ebene.appendChild(document.createElement('br'))
}
}
//-->
</script>
</head>
<body onload="erzeuge_verweis()">
<div id="ebene01"></div>
</body>
</html>

Die Frage nach der Eleganz finde ich gut :).

Wenn Du schon die Seite dynamisch aufbauen willst, mache Dir doch erst einem eine HTML-Layout und erzeuge es komplett dynamisch mit .appendChild(). Verdeutliche Dir wie DOM mit Variablen umgeht und bilde die einzelnen Bausteine in einem polydimensionalen Datenfeld nach. Lade nur noch die einzelnen Variablen mit document.getElementsByTagName("script").src (gegebenenfalls erzeugst Du dieses Element jedesmal neu) und hänge alle Kindknoten ab <body> nach dem Click auf einen Link aus und erzeuge die innere Struktur neu und hänge sie ein.

Es ist nicht wirklich realistisch, aber möglich UND für meine Begriffe elegant :))))))

Gruß aus Berlin!
eddi