Hallo,
Das Script kenne ich doch irgendwo her... ;)
var bilddaten = [
{ description : "desc1", link : "http://www.test.de/bild1.jpg" },
{ description : "desc2", link : "http://www.test.de/bild2.jpg" }
];window.onload = bildRotationStart;
Diese Funktion wird nach dem erfolgreichen Laden des Dokuments ausgeführt...
function bildRotationStart () {
//bildIndex = Math.floor(bannerdaten.length * Math.random());"
bildIndex = "0"var pElement = document.createElement("p");
pElement.id = "bild";var aElement = document.createElement("a");
aElement.id = "bild-link";
aElement.href = bilddaten[bildIndex].link;
aElement.title = bilddaten[bildIndex].description;
aElement.target = "_blank";
Hier wird das a-Element erzeugt. Es ist schon ganz richtig, hier auch die Logik für die Lightbox einzubauen.
Allerdings funktioniert es nicht, wie du festgestellt hast, einfach ein rel-Attribut zu setzen. Das ist im Grunde nicht dumm, nur müsste halt garantiert sein, dass die Lightbox-Initialisierung auf jeden Fall nach der Funktion bildRotationStart() ausgeführt wird - dann würde das Lightbox-Script das a-Element auch finden.
function initLightbox()
Einfach die Funktion einzubauen bringt natürlich nix (und dürfte zu einem Fehler führen, weil die Funktion bereits definiert ist). Entweder du modifizierst Lightbox oder lässt das so, wie es ist, und ergänzt deine bildRotationStart(). Letzteres dürfe am einfachsten sein. Dazu ergänzt du an obiger Stelle:
aElement.onclick = function () { showLightbox(this); return false; };
(Hatte Mathias im Grunde schon gezeigt.)
Anstatt
window.onload = bildRotationStart;
schreibst du dann
addLoadEvent(bildRotationStart);
Ansonsten würde nur initLightbox oder bildRotationStart, aber nicht beides ausgeführt.
Damit wird zuerst Lightbox ausgeführt, was aber in seiner Initialisierungsfunktion dein a-Element nicht findet, weil das erst danach eingefügt wird. Also versiehst du dieses a-Element manuell mit der Lightbox-Logik.
Mathias