Einmaliger Aufruf von onLoad-Funktion im CMS contao

Seit der Etablierung der beiden großen Javascript-Frameworks jQuery und MooTools ist es für Webdesigner attraktiv geworden, diese anstatt von Flash für kleinere Animationen und Ähnliches zu nutzen.

Wenn man nun diese Frameworks mit dem Content-Managment-System “contao” (ehemals: “typolight“) nutzen möchte, so ergibt sich für Freunde der MooTools-Bibliothek erstmal kein Problem, da diese bereits im CMS integriert ist.

Nutzer und Anhänger von jQuery haben es da schon etwas schwerer. Zunächst müssen im Standard-Template (meist fe_page > “fe_page.tpl“) die beiden Javascript-Dateien von jQuery eingebunden werden:

Zusätzlich dazu natürlich noch die eigene Datei:

« type=««>

So weit, so gut.

Man kann nun Artikel im HTML-Code erstellen und dort auch Javascript aufrufen.

Was aber, wenn man eine Funktion beim Aufrufen der Seite triggern möchte?

Dazu gibt es im HTML-Code die Möglichkeit, dem -Tag ein ‘ onload=”meinefunktion()” ‘ anzufügen, das dann ausgeführt wird, sobald die Seite komplett geladen ist. Dies ist aber auch der Fall, sobalt man auf eine Unterseite geht. Wird im Script also eine Animation aufgerufen, so haben wir diese Animation bei jedem Wechsel auf eine Unterseite.

Um eine Programmierung mit Cookies (um eine Variable zu speichern) zu vermeiden kann man das Problem leicht umgehen:
Man prüft beim Funktionsaufruf, ob die aktuelle URL die der Startseite ist. Wichtig ist dafür, dass man die URLs nicht von contao manipulieren lässt.
Hier ein Beispiel:
function meine_funktion(){
if(document.URL == »http://meine-seite.de/«){
$(»#id«).animate({»top«: »0px«, »width«: »900px«}, »slow«);
}
else{
document.getElementById(»id«).style.top = »0px«;
document.getElementById(»id«).style.width = »900px«;
}
}