[TYPO3-german] Seite mit PHP, HTML, JS einbinden

csvirtual at gmx.de csvirtual at gmx.de
Mon Oct 14 01:36:53 CEST 2013


Hallo Bernd und Simon,

das manuelle Escapen des JS-Codes (ca. 800 Zeilen) habe ich nach Stunden nicht fehlerfrei hinbekommen. Man verliert auch den Überblick, wo man etwas vergessen haben könnte.

Leider habe ich Bernds Methoden zur JS-Einbindung ebenfalls nicht erfolgreich umsetzen können und neben diesen  auch noch aus dem JS-Code eine externe .js-Datei erstellt und versucht diese wie die anderen Libraries über includeJS einzubinden. 
Das einzige was funktioniert ist iframe. Da sich alles auch nur auf eine Seite beschränkt, werde ich das wohl nun endgültig wählen. 

Ich bin aber nach wie vor verwundert, dass es so komplex und aufwendig ist, eine Datei mit PHP, HTML und JS in Typo einzubinden. Das wird, so dachte ich, doch oft erforderlich sein. Wäre eine super Extension, in der man einfach deklariert was PHP, HTML und JS ist und auch die Reihenfolge der Ausführung;)

Vielen Dank an alle, die Hilfestellung gegeben haben!!
Grüße zum Wochenstart
Chris


-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von bernd wilke
Gesendet: Samstag, 12. Oktober 2013 12:27
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] Seite mit PHP, HTML, JS einbinden

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
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german



More information about the TYPO3-german mailing list