molily: Bannerrotation mit zufälliger Reihenfolge

Beitrag lesen

Hallo,

lol

Naja..egal..hab an dem Script ein wenig rumgespielt, nur leider komm ich irgendwie nich drauf, wie ich das in eine externe javascript-DAtei packen und es schließlich schön in meine Tabelle includen kann :-(

Andernfalls, falls ich das Script in der Html-Datei lasse - wie kann ich es dann in die richtige Position bringen? Einfach zwischen <td> und </td> klemmen geht hier etwas schlecht ;-)

Das Script kann nicht an einer bestimmten Stelle im HTML untergebracht werden, um da wirksam zu werden.

Der Grund liegt darin, dass das Script auf document.write() verzichtet und alle Änderungen am Dokument »von außen« über die DOM-Schnittstelle vornimmt.
Die ursprüngliche Position des Scripts im Dokument spielt dann keine Rolle mehr - daher ist es tatsächlich am besten, solche Scripte extern auszulagern und im head über script src="..." einzubinden.

Wo die Bannergrafik eingefügt wird, wird an dieser Stelle entschieden:

  
function bannerRotationStart () {  
   ...  
   // Wo auch immer du das Element einfügen willst, hier z.B. an den Dokumentanfang  
   document.body.insertBefore(pElement, document.body.firstChild);  

Hier wird das p-Element mit dem Banner wie beschrieben am Dokumentanfang eingefügt.

Wenn man es woanders einfügen will, spricht man das gewünschte Elternelement an und hängt den p-Elementknoten mit appendChild() oder insertBefore() dort in den DOM-Baum ein.

Soll das Banner in ein bestimmtes Element, so gibt man dem eine ID:

<td id="banner-container"></td>

und spricht es dann über die ID an, um das Element dort einzuhängen:

document.getElementById("banner-container").appendChild(pElement);

Ok, ein leeres td-Element im Code, das erst mit JavaScript gefüllt wird, ist nicht sehr sinnig. Man würde dann mit JavaScript die ganze Zeile dynamisch einfügen. Oder gleich auf Tabellenlayout verzichten. ;)

Sicher wäre auch eine Mischlösung mit document.write() möglich, aber für gewöhnlich sollte man HTML- und JavaScript-Code möglichst trennen.

Mathias