Zum Inhalt springen

Header Reihenfolge vertauscht

Erstellt am 15. August 2008 · 4 Antworten · letzte Antwort am 8. September 2008

Tags: JavaScript & AJAX, Frage

j.​bort ·

Hallo Leute,

ich habe eine Extension geschrieben, die im Header der Seite sowohl css- und js-Dateien, als auch einzelne js-Funktionen einbinden muss.

Auf meinem Testserver (TYPO3 4.1.6) läuft alles perfekt. Es werden erst die Dateien und dann die js-Funktionen eingebunden. So muss es auch sein, damit die Extension funktioniert:

<title>Testseite</title>
<meta name="generator" content="TYPO3 4.1 CMS" />

<link rel="stylesheet" href="../typo3conf/ext/jb_ext3/css/standard.css" type="text/css" media="screen" />
<script src="../typo3conf/ext/jb_ext3/js/standard.js" type="text/javascript"></script>

<script type="text/javascript">
	/*<![CDATA[*/
<!--

window.addEvent('domready', function() {
     var echo = new SimpleRow($('jb_ext3'), {});
});

Auf dem Kunden-Server (TYPO3 4.1.2) ist die Ausgabe allerdings genau anders herum. Also erst die js-Funktionen und dann die Dateien. Dadurch funktioniert allerdings die Extension nicht!

Ich hatte gedacht, dass sich vielleicht die Generierung des Headers in der typo3/sysext/cms/tslib/class.tslib_pagegen.php geändert hat. Die Datei von 4.1.2 und 4.1.6 ist aber identisch.

Ich bin nun ratlos, wo diese "Umkehrung" herkommen könnte. Habt ihr noch Ideen?!

j.​bort ·

sorry...da hast du natürlich vollkommen recht.

Hier die entsprechenden Stellen:

$GLOBALS['TSFE']->additionalHeaderData['special_css'] = '<link rel="stylesheet" href="'.t3lib_extMgm::extRelPath('jb_ext3').'css/standard.css" type="text/css" media="screen" />';

$GLOBALS['TSFE']->additionalHeaderData['special_js'] = '<script src="'.t3lib_extMgm::extRelPath('jb_ext3').'js/standard.js" type="text/javascript"></script>';

// add onload into body-tag:
$TSFE->bodyTagAdd= 'onload="loadFunction();" onunload="unloadFunction();"';
  
//ad onload-function:
$GLOBALS["TSFE"]->JSeventFuncCalls["onload"][$this->prefixId]="loadFunction();";
$GLOBALS["TSFE"]->JSeventFuncCalls["onunload"][$this->prefixId]="unloadFunction();";

$GLOBALS["TSFE"]->additionalJavaScript['jb_ext3'] = "
     window.addEvent('domready', function() {
     var echo = new SimpleRow($('jb_ext3'), {});
";
just2b ·

Hallo,

schreib doch einfach alles via $GLOBALS['TSFE']->additionalHeaderData['special_js'] raus... und fertig

georg