Zum Inhalt springen

JavaScript include im HTML Header

Erstellt am 26. Mai 2006 · 5 Antworten · letzte Antwort am 27. Mai 2006

Tags: Frage

phochstr ·

Hallo!

Seit einiger Zeit versuche ich etwas, das in HTML völlig trivial ist, meinem TYPO3-Template beizubringen: Es wäre so schön, wenn TYPO3 (3.8 oder 4.0) einfach ein

<script type="text/javascript" src="..."></script>

im HTML Header einbauen würde. Da es sich um ein IE-Bugfix handelt, wäre es noch schöner, wenn's nur für IE gemacht würde, aber das ist mit den selectors sicher wirklich trivial.

An verschiedenen Orten habe ich gelesen, dass dies via page.headerData gehen würde. Genau nach Anleitung(en) eingebaut, cache geleert, und schon wird .... gar nichts angezeigt.

Der Code sieht wie folgt aus:

page.headerData.10 = TEXT
page.headerData.10.value = <script type="text/javascript" src="..."></script>

(total 2 Zeilen)

Hat jemand von Euch einen Tipp?

Vielen Dank - P.

phochstr ·

Hmmm, kratz kratz, äääähhh, ...

Richtig, ja, es funktioniert. Auch bei mir, sorry für den teilweise falschen Alarm. Teilweise, da (bisher) nur auf 3.8...

Das Ergebnis findet sich auf http://bittco.steinernet.ch

Das setup sieht wie folgt aus:
# XHTML compliance:
page.config.doctype = xhtml_trans

# Menu construction:

temp.navi = HMENU
temp.navi {
1 = TMENU
1{
noBlur = 1
wrap =<ul class="menu">|</ul>
NO = 1
NO.linkWrap =<li class="m1-no">|</li>
NO.ATagParams=class="no"
ACT = 1
ACT.linkWrap =<li class="m1-act">|</li>
ACT.ATagParams=class="act"
ACTIFSUB = 1
ACTIFSUB.linkWrap =<li class="m1-act">|
ACTIFSUB.ATagParams=class="act"
RO = 1
}
2 = TMENU
2{
noBlur = 1
wrap =<ul class="menu">|</ul></li>
NO = 1
NO.linkWrap =<li class="m2-no">|</li>
NO.ATagParams=class="no"
ACT = 1
ACT.linkWrap =<li class="m2-act">|</li>
ACT.ATagParams=class="act"
RO = 1
}
}

# Template content object:
temp.mainTemplate = TEMPLATE
temp.mainTemplate {
template = FILE
template.file = fileadmin/bw/tpl-main_01.html
workOnSubpart = DOCUMENT_HEADER
subparts.SITETITLE = TEXT

workOnSubpart = DOCUMENT_BODY
subparts.SITETITLE = TEXT
subparts.SITETITLE.value = Bitterwasser Lodge &amp; Flying Center - Namibia
subparts.PAGETITLE = TEXT
subparts.PAGETITLE.field = subtitle

subparts.MENU < temp.navi

# subparts.SUBMENU < temp.submenu

subparts.CONTENT < styles.content.get

}

# Default PAGE object:
page = PAGE
page {
meta.AUTHOR = Peter Hochstrasser
meta.DESCRIPTION = Bitterwasser Lodge und Flying Center ist das El Dorado jedes Segelflugpiloten. Unglaubliche thermische Bedingungen und riesige Bereiche freien Luftraumes ermöglichen weltweit einmalige Streckensegelflug-Bedingungen.
meta.KEYWORDS = Namibia, lodge, touren, reisen, hotel, safari, segelfliegen, fliegen, segelflugzeug, flugzeug, afrika, südliches Afrika
meta.ROBOTS = index,follow
meta.LANGUAGE = de
meta.COPYRIGHT = Copyright (c) 2006 Bitterwasser Pty. Ltd. All rights reserved
stylesheet =fileadmin/bw/main-bwstyle_01.css
headerData {
1000 = HTML
1000.value = <!--[if lt IE 7]>
1001 = HTML
1001.value = <script src="/ie7/ie7-standard-p.js" type="text/javascript"></script>
1002 = HTML
1002.value = <script src="/ie7/ie7-css3-selectors.js" type="text/javascript"></script>
1003 = HTML
1003.value = <script src="/ie7/ie7-css-strict.js" type="text/javascript"></script>
1004 = HTML
1004.value = <![endif]-->
}
typeNum = 0
10 < temp.mainTemplate
}

Gibt's auch 'ne möglichkeit, das ganze auf Human Readable auszugeben, d.h. mit den Umbrüchen wie oben, ohne zusammengehängte script statements?

Danke für nen Tipp - P.

theo ·
headerData {
1000 = HTML
1000.value (
<!--[if lt IE 7]>
<script src="/ie7/ie7-standard-p.js" type="text/javascript"></script>
<script src="/ie7/ie7-css3-selectors.js" type="text/javascript"></script>
<script src="/ie7/ie7-css-strict.js" type="text/javascript"></script>
<![endif]-->
)
}

Mehr vorgekautes gips nich...

phochstr ·

Theo

Vielen Dank! Als ich Deine Antwort sah, wusste ich gleich, dass ich das schon irgendwo gelesen habe. Nur, so von innen heraus kam's halt noch nicht.

Somit funktioniert's auf 3.8 vollständig; bleibt noch 4.0... Werde mich wieder melden, wenn ich da die Lösung gefunden habe. Sicher auch was triviales.

Schöne Grüsse aus der Schweiz
P.

phochstr ·

Sehr zu meiner Schande muss ich gestehen, dass ich schlicht meine JS Library an einem anderen Ort hatte auf dem Development Rechner. Tz tz tz.

Wie auch immer, dank den Tips von Theo habe ich folgendes gelernt:

a) viele gefüllte caches sind des updates Tod - immer alle caches leeren!
b) es macht Sinn, nicht die ganze Template zu editieren, sondern nur den Teil, an dem man gerade arbeitet - da gibt's dann unten auf dem Form nach dem Save den hilfreichen Link "clear all caches".

c) #angry# Ich werde in Zukunft immer noch einmal checken, ob ich's auch wirklich so gemacht habe, wie ich das gedacht habe.

Für alle IE-Bändiger hier noch ein Goodie, mittlerweile auch nicht mehr ganz unbekannt:

Wenn Ihr Euch mit IE und absolute/fixed DIVs herumschlagt, und die Performance nicht das allerwichtigste ist (wie z.B. bei einem Site, der viele Photos hat und darum so oder so langsam lädt): Versucht mal IE7 von dean.edwards.name. Einzig eines oder mehrere JS einbinden, und schon verhält sich IE wie ein zivilisierter Browser -- feine Sache!

Grüsse - P.