Zum Inhalt springen

zerpflücktes Javascript nach Übergabe an TYPO3

Erstellt am 19. Februar 2009 · Noch keine Antworten

Tags: JavaScript & AJAX, Frage

Julian.​Hofmann ·

Hallo.

Mir ist es ein Rätsel, warum TYPO3 mir eine Javascript-Funktion jedesmal zerpflückt. Sie wird innerhalb einer Extension generiert, in <script type="text/javascript"> und CDATA verpackt (egal ob per Hand oder mit t3lib_div::wrapJS) und passt bis zur Übergabe an TYPO3. Im Frontend wird der Code dann aber am Ende verstümmelt. Warum?

Die Funktion

function feedit_manipulateGroup(theField) { 
	selObj = document.tx_abminijoboffers_jobs_form[theField+'_select']; 
	val = selObj.value; 
	list = document.tx_abminijoboffers_jobs_form[theField].value; 
	newList = ''; 
	for(i=0;i<selObj.length;i++) { 
		if(selObj.options[i].selected == false) { 
			newList += selObj.options[i].value+','; 
		} else { 
			rem_i = i; 
		}
	} 
	if(newList.length!=0) {
		newList = newList.substring(0,newList.length-1); 
	}
	document.tx_abminijoboffers_jobs_form[theField].value = newList; 
	selObj.options[rem_i] = null;
}

Das ganze via t3lib_div::wrapJS($javascript) gewrapt und an TYPO3 übergeben, landet im HTML als (v.a. die letzten Zeilen beachten):

<script type="text/javascript">
/*<![CDATA[*/
	function feedit_manipulateGroup(theField) { 
		selObj = document.tx_abminijoboffers_jobs_form[theField+'_select']; 
		val = selObj.value; 
		list = document.tx_abminijoboffers_jobs_form[theField].value; 
		newList = ''; 
		for(i=0;i<selobj.length;i++) ifselobjoptionsiselected="false)" newlist="newList.substring(0,newList.length-1);" else="" rem_i="i;" ifnewlistlength="0)" documenttx_abminijoboffers_jobs_formthefieldvalue="newList;" selobjoptionsrem_i="null;">*/
</script>

Sobal ich den Einfluss in /*<![CDATA[*/ und /*]]>*/ weglasse, funktioniert es. Aber so ist das ja auch nicht wirklich gedacht...

Hat irgendjemand eine Idee, warum?

Viele Grüße
Julian