JavaScript SyntaxError: unterminated string literal

raven16

Lieutenant
Registriert
Nov. 2008
Beiträge
580
Hallo zusammen,

ich bin noch relativ neu in der Materie mit JavaScript/jQuery/AJAX.
Habe eine Fehlermeldung und verstehe nicht genau, was ich falsch mache.

HTML:
<script>
	$(document).ready(function(){				
		$('#nav-loginpage a').click( function(){
			var page = $(this).attr('href');
			page = '<?php get_template_directory_uri() ?>';
			alert(page);
		});
	});
</script>

Dies ergibt die Fehlermeldung: SyntaxError: unterminated string literal. Der Fehler liegt auf jeden Fall in der Zeile, wo ich versuche den Pfad zu meinem Wordpress-Templateordner mit PHP auszulesen. Wenn ich die Fehlermeldung aufklappe, dann steht da nicht wirklich viel sinnvolles drin.

Gibt es generell auch bessere Möglichkeiten, bei JavaScript auf Fehlersuche zu gehen?

Viele Grüße

Nachtrag: Im Quellcode wird mir im Browser folgendes dazu ausgegeben:
HTML:
<script>
	$(document).ready(function(){				
		$('#nav-loginpage a').click( function(){
			var page = $(this).attr('href');
			page = '
</script>
Wenn das so stimmt, dann ist es ja auch kein Wunder, warum ich eine Fehlermeldung erhalte. Aber dann weiß ich halt immernoch nicht, was bei mir falsch ist am Code :D
 
Zuletzt bearbeitet:
Tja schau doch mal den resultierenden JS Code an und finde dann den Fehler (z.b. Zeilenumbrüche o.ä.).
 
Sieht seltsam aus, wenn das funktioniert (beachte das echo), müsste es auch mit der Funktion klappen (anstelle von "bla").
Code:
<script>
	$(document).ready(function(){				
		$('#nav-loginpage a').click( function(){
			var page = $(this).attr('href');
			page = '<?php echo "bla"; ?>';
			alert(page);
		});
	});
</script>
 
Zuletzt bearbeitet: (Formatierung)
phreazer schrieb:
Sieht seltsam aus, wenn das funktioniert (beachte das echo), müsste es auch mit der Funktion klappen (anstelle von "bla").

Mit echo "bla" funktioniert es, aber mit der Wordpress Funktion nicht :freak:
Habe auch mal eine andere PHP-Funktion ausprobiert, aber funktioniert nicht :D
HTML:
page = '<?php echo get_template_directory_uri(); ?>';
Ergänzung ()

Ich habe selbst die Lösung gefunden, aber ich verstehe noch nicht ganz, warum ich das so machen muss.

HTML:
<script type="text/javascript">
	var templateURL = '<?= get_bloginfo("template_url"); ?>';
</script>

Dieses Script muss ich genau so im <head></head> verwenden, wie es da steht, damit es funktioniert.
Wenn ich <?php schreibe, dann funktioniert es schon wieder nicht. Und warum muss da hinter ein "=" zeichen nochmal sein? :freak:

Wenn mir das noch jemand erklären kann, warum das so ist, dann wäre ich schon echt dankbar. :)
 
Zurück
Oben