CFML- und Web-Entwicklung allgemein

jQuery Unerwarteter Aufruf oder Zugriff in Internet Explorer 8

Als ich kürzlich die Webseite guenterrittner.de auf Ajax umgestellt habe, habe ich die Anfragen mit der simplen wie effektive Jquery Funktion $.load() ausgeführt.

$("#content").load("/ajax/ajaxcontent",function(data){
/* callback stuff */
});

Allerdings wollte ich zeitgleich den Kopf Title-Tag der Seite neu setzen.
Irgendwoher musste ich also den Titel bekommen. Somit habe ich alles auf die Funktion $.getJSON() umgestellt und mir aus PHP5 mit json_encode() ein Array-Objekt als JSON formatiert zurück geben lassen.
PHP Code:

<?php
$arr=array('title'=>'Neuer Title','content'=>'HTML Content');
echo json_encode($arr);
?>

Javascript Code:

$.getJSON("/ajax/ajaxcontent",function(data){
	$("title").html(data.title);
	$("#content").html(data.content);
});

Problem:
Alles funktionierte im Firefox 9 und Google Chrome, jedoch im Internet Explorer erscheint plötzlich die Fehlermeldung: Unerwarteter Aufruf oder Zugriff.
Mein erster Gedanke, dass es an der Umstellung auf JSON liegt, ist jedoch falsch.

Lösung:
Über Javascript-Debugging konnte ich heraufinden dass es mit innerHTML zu tun hat. Und letztlich lag es an der Zeile $(„title).html. Statt dessen sollte man ausschließlich document.title verwenden!

$.getJSON("/ajax/ajaxcontent",function(data){
	// $("title").html(data.title);
	document.title = data.title
	$("#content").html(data.content);
});

Weitere Informationen dazu findet man im Jquery Forum und in den Google Groups.

Nächster in Artikel

Vorheriger in Artikel

Nach oben

© 2024 ggfx.org – golney graphics | Datenschutz