Javascript aus Erweiterungen entfernen und manuell einbinden
Bitte beachten:
Dieses Codebeispiel bezieht sich auf alte TYPO3 4.x Versionen und kann in aktuellen TYPO3-Versionen nicht mehr verwendet werden.
Standardmäßig werden in TYPO3 verschiedene Javascript Bibliotheken geladen. Hinzukommen bei einigen Erweiterungen weitere Bibliotheken. Es kann dabei auch vorkommen, dass Javascript Bibliotheken doppelt geladen werden. Zwei verschiedene Extensions laden die gleiche Bibliothek mehrmals. Dadurch entstehen Konflikte und erfordern eine manuelle Anpassung. Unnötige oder mehrfach geladene Javascripts können manuell entfernt werden und nur noch die für sinnvoll erachteten eingebunden werden.
Um alle Javascripts von TYPO3 und allen Extensions zu entfernen muss dieses Typoscript im Root-Template der Seite eingebunden werden (Achtung es werden alle JS nicht nur die Bibliotheken entfernt):
# löscht alle im "head" inkludierten Javascripts
page.includeJS >
# löscht alle im "head" inkludierten Javascript Bibliotheken
page.includeJSlibs >
# löscht alle vor dem schließenden "body" inkludierten Javascripts
page.includeJSFooter >
# löscht alle vor dem schließenden "body" inkludierten Javascript Bibliotheken
page.includeJSFooterlibs >
# löscht alle inline inkludierten Javascripts
page.jsInline >
# löscht alle inline, vor dem schließenden "body" inkludierten Javascripts
page.jsFooterInline >
Bei den Werten "page.jsInline" und "page.jsFooterInline" muss beachtet werden, das hier in den meisten Fällen die Funktionen (Feld Validierung, optische Effekte, usw.) und nicht die Bibliotheken definiert werden!
Javascript Bibliotheken manuell einbinden (die mit dem TYPO3 Core mitgeliefert werden):
page.javascriptLibs {
# prototype
Prototype = 1
# Scriptaculous
Scriptaculous = 1
# Scriptaculous Module hinzufügen
Scriptaculous.modules = dragdrop,controls
# ExtCore
ExtCore = 1
# die ExtCore Debug-Datei (unkomprimiert)
ExtCore.debug = 1
# ExtJS
ExtJs = 1
# ext-all.css
ExtJs.css = 1
# standard theme
ExtJs.theme = 1
# läd angegebenen Adapter (jquery|prototype|yui)
ExtJs.adapter = …
# QuickTips
ExtJs.quickTips = 1
# die ExtJS Debug-Datei (unkomprimiert)
ExtJs.debug = 1
}
Anschließend können dann eigene Javascript's eingebunden werden, z.B.:
page.includeJSFooter.file1 = fileadmin/myjs.js
oder das einer Extension:
page.includeJS.file2 = typo3conf/ext/EXTENSIONKEY/resources/js/extension.js
oder ohne Datei:
page.jsInline.10 = TEXT
page.jsInline.10.dataWrap = var pid = {TSFE:id}; alert('pid: '+pid);