[TYPO3-german] Seite mit PHP, HTML, JS einbinden
bernd wilke
t3ng at pi-phi.tk
Sat Oct 12 12:26:34 CEST 2013
Am Sat, 12 Oct 2013 01:28:13 +0200 schrieb csvirtual:
> Einziges Problem ist, dass der JS-Code nicht ausgeführt wird. Dieser
> steht im Body des HTML-Teils und ist nicht mit $content .= '...'
> eingrahmt (hatte ich auch mal versucht). Die Einbindung der JS-Libraries
> erfolgt im head-Teil (eingerahmt).
>
> So schauts aus:
>
> <?php function user_datenziehen($content= ' '){
> :
> :
> $content .='<html>';
> $content .='<head>';
> $content .='<script type="text/javascript"
> src="fileadmin/jscript/jquery-1.10.2.min.js"></script>';
> $content .='<link rel="stylesheet" type="text/css"
> href="fileadmin/design.css">';
> $content .='</head>';
> $content .='<body>';
> :
> :
> ?>
>
> <script type="text/javascript">
> JS-Code hier
> </script>
>
> <?php $content .='</body>';
> $content .='</html>';
> return $content;
> }
> ?>
>
>
> Ein letzter Hinweis zum JS-Code wäre super.
hier versuchst du mitten im Content nochmal ein HTML- und ein HEAD-Tag
einzufügen????
alles was dein Code zurück liefert wird in den Marker geschrieben, der
mitten im BODY steht. das kann natürlich nicht funktionieren.
um aus einer TYPO3 Extension (Plugin!) heraus Javascript einzubinden gibt
es drei Möglichkeiten.
Wenn du expliziten Javascript-code einbinden willst kann man das wie
folgt machen:
$GLOBALS['TSFE']->setJS($this->extKey,'alert("das ist js");');
oder auch:
$jsCode = "...here comes your JS code...";
$GLOBALS['TSFE']->additionalHeaderData[$this->extKey] = t3lib_div::wrapJS
($jsCode);
so etwas braucht man wenn man z.b. im Javascript explizite Werte setzen
will.
Das Einbinden einer externen Javascript-Datei geht ähnlich der zweiten
Variante:
$GLOBALS['TSFE']->additionalHeaderData[$this->extKey] =
'<script type="text/javascript" language="JavaScript" '.
'src="'. $pathAndNameOfJavascript.'"></script>';
Damit wird TYPO3 gesagt, dass bei der Generierung des Seitenheaders
dieses Javascript mit eingebunden werden soll, was eine ganz andere
Stelle ist als der Return-Wert deiner Funktion erscheint.
Unabhängig davon:
technisch machbar, aber äußerst unsauber, besteht schon die Möglichkeit
javascript auch im BODY zu definieren, bzw. zu includieren. Natürlich nur
mit einfachen SCRIPT-Tags und nicht mit HEAD oder gar HTML.
bernd
--
http://www.pi-phi.de/cheatsheet.html
More information about the TYPO3-german
mailing list