---
title: "JS für jeden Content auf einer Seite"
url: "https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage","JavaScript & AJAX"]
created: "2009-06-08"
last_reply: "2009-06-12"
replies: 5
solved: false
page: 1
pages: 1
lang: "de"
---

# JS für jeden Content auf einer Seite

Extensions › Entwicklung · 5 Antworten · gestartet 2009-06-08

## Eröffnungsbeitrag

**froemken** · 2009-06-08 · [Beitrag #1](https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite/1)

Hallo zusammen,

habe hier eine Extension gebastelt, die so einen Bildwechsel macht auf Basis von MooTools.

Solange ich mein Plugin nur einmal einsetze funktioniert mein JavaScript, das den Bildwechsel aktiviert.

Füge ich mein Plugin ein weiteres mal ein, ist mein Counter auf einmal null, er findet keine Bilder mehr, und im Headerbereich ist nur das JS für den letzten Content zu sehen.

Heißt: Das JS für die vorigen Contents wurde überschrieben.

Kann mir jemand einen Hinweis in die richtige Richtung geben?

Stefan

## Antworten

### [#2](https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite/2) · just2b · 2009-06-08

und die spannende frage lautet: wie fügst du das js dem header hinzu

### [#3](https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite/3) · froemken · 2009-06-08

Hmm...dachte additionalHeader sollte klar sein. Das folgende Script fügt die MooTools und das CSS ein. Hier gibt es noch keine Probleme, da das nahezu von Dmitry abgeschrieben ist.

```php
//Ensure that header part is added only once to the page
$key = $this->prefixId.'_'.md5($subPart);
if(!isset($GLOBALS['TSFE']->additionalHeaderData[$key])) {
$GLOBALS['TSFE']->additionalHeaderData[$key] =
$this->cObj->substituteMarkerArray($subPart, array(
'###MOOTOOLS_SCRIPT###' => $script,
'###MOOTOOLS_STYLE###' =>
'<style type="text/css">'.$content_style.'</style>',
));
}
```

und hier kommt meine Katastrophe:

```php
//Insert plugin specific script
$key = $this->prefixId.'_'.md5($subPart);
$GLOBALS['TSFE']->additionalHeaderData[$key] =
$this->cObj->substituteMarkerArray($subPart, array(
'###MOOTOOLS_FADE_SCRIPT###' => $fade_script,
));
```

Hier weiß ich einfach nicht weiter. Das soll er jetzt pro CE machen. In deiner rgtabs habe ich etwas gefunden wie $this->cObj->data['uid'], dieser Wert ist bei mir allerdings leer. Liegt wohl daran, dass du RECORDS und CONTENT verwendest?!?!

froemken

### [#4](https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite/4) · just2b · 2009-06-08

naja es gibt ja viele wege, daher ist nie nichts klar ;)

wie wärs mit einem $GLOBALS['TSFE']->additionalHeaderData[$key] **.=** ...

georg

### [#5](https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite/5) · froemken · 2009-06-09

Wenn man mit dem Dingen rumarbeitet ist eine Cacheleerung des Browsers schon mal sinnvoll :-)
Bin damit schon mal ne ganze Ecke weiter. Danke!
Ich brauche noch einen eindeutigen Bezeichner für mein Plugin. Kennt ihr da was? Das Problem wird ja sein, dass ich mal eine Ext als Plugin einfüge und mal als LIB-Objekt. Denn wenn z.B. meine Ext 3mal auf ein und derselben Seite auftauchen sollen und es immer die gleiche Anzahl Bilder sind, dann erstellt mein Script derzeit 3mal hintereinander den gleichen JavaScript-Code.

Besser wäre vielleicht auch die Info, wie oft meine Ext auf ein und derselben Page vorhanden ist. Dann bastel ich mir eine Schleife.

Wenn ich mit Sessions arbeite, dann müsste ich zumindest wissen, ob mein 3tes Plugin auf der Seite das letzte ist, um die Session wieder zu leeren.

Ich hab jetzt alle drei Möglichkeiten durch, aber ständig fehlt mir eine Info.

Ne Idee?

Stefan

### [#6](https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite/6) · froemken · 2009-06-12

OK...hab eine Lösung gefunden:
Ich schreibe das Script zum Starten der Mootools-Funktionen in den Header. Darin enthalten sind zwei MARKER in einem Kommentar:
1. /* pluginCounter=1 */
2. /* ###FUNKCONF### */

Ich hol mir mit additionalHeaderData[100] meinen zuvor in den Header geschriebenen Content wieder aus und mit preg_match lese ich nun den Counter aus und incrementiere ihn mit 1 und das Ergebnis landet wieder im Header. So habe ich immer die aktuelle Anzahl meiner Plugins auf einer Seite. Unabhängig davon ob sie als PlugIn oder als ObjectPath eingefügt wurden.

Mit ###FUNKCONF### vor-konfiguriere ich ein paar Funktionen. Da diese aber auch mehrfach vorhanden sein müssen ersetze ich ###FUNKCONF### nicht einfach nur mit meiner Konfiguration sondern mit der Konfiguration und einem anschließendem ###FUNKCONF###.
Somit habe ich beim nächsten Durchlauf wieder einen Marker zur Verfügung, den ich ersetzen kann.

Wenn ich das Script noch etwas optimiert habe, könnt Ihr Euch das Konstrukt gerne in meiner Extension sfslideshow begutachten. Eine neue Version werde ich wohl am Montag oder Dienstag hochladen.

Danke Euch

Stefan

---

Quelle: „JS für jeden Content auf einer Seite“, typo3.net, https://www.typo3.net/d/90331-js-fuer-jeden-content-auf-einer-seite
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
