Problem mit Zeilenumbruch

visiondpc

Erfahrenes Mitglied
Hallo,
gibt es eine Möglichkeit Variablen in JavaScript einen String zuzuordnen, der über mehrere Zeilen geht?
Ich muss ein Skript fixen in dem einer Variable ein String zugeordnet wird, der mittels PHP aus einer Datenbank geholt wird. Wenn bei der Eingabe des Strings Zeilenumbrüche gemacht wurden, hab ich diese natürlich auch im Quellcode. Das Ergebnis ist eine unterminated string literal-Meldung. Mit PHP kann ich die Umbrüche leider nicht abfangen, weil ich sie noch für die Ausgabe über nl2br() brauche.

Danke schon mal im Voraus.
 
Du kannst die Umbrüche in PHP abfangen, indem du den String dort codierst und in JS wieder dekodierst:
Code:
js_var=unescape('<?php echo rawurlencode($phpvar);?>');
 
Danke.
Im Firefox klappt es super aber im IE wird mir kein Text mehr ausgegeben.

Code:
Titel_reset = unescape("<span class='text'><? print rawurlencode($navigation_beschreibung_lang); ?></span>");
 
Hast du schon probiert, den ganzen String per rawurlencode() zu berabeiten?
Code:
Titel_reset = unescape('<? print rawurlencode('<span class="text">'.$navigation_beschreibung_lang.'</span>'); ?>');

Ansonsten:was besagt die Fehlermeldung beim IE?
 
Ok sorry. Das Problem ist, dass ich selber nicht so ganz verstehe was da wie passiert. Der Entwickler der vor mir da dran war hat "etwas" chaotisch gearbeitet und extrem unlesbaren Code produziert.
Code:
<script language="JavaScript">
			var Titel	= new Array();
			var Bild	= new Array();
			
			Titel_reset = unescape("<? print rawurlencode("<span class='text'>".$navigation_beschreibung_lang)."</span>"; ?>");
			Bild_reset = document.head_image.src;
			
			function change_content(i)
			{
				document.head_image.src	= Bild[i];
				
				if(document.all)
				{
			   		document.all.Textlayer.innerHTML = Titel[i];
				}
				else if(document.layers)
		  		{
		   			document.Textlayer.document.open();
		   			document.Textlayer.document.write(Titel[i]);
		   			document.Textlayer.document.close();
		  		}
			}
			
			function reset_content()
			{
				document.head_image.src	= Bild_reset;
				
				if(document.all)
				{
			   		document.all.Textlayer.innerHTML = Titel_reset;
				}
				else if(document.layers)
		  		{
		   			document.Textlayer.document.open();
		   			document.Textlayer.document.write(Titel_reset);
		   			document.Textlayer.document.close();
		  		}
			}
			</script>
			<?
			for($i = 0; $i < $rows02; $i ++)
			{
			?>
			<script language="JavaScript">
			Titel[<? print $i; ?>]	= "<span class='title'><? print mysql_result($result02,$i,"titel"); ?></span><span class='text'><br><? print ereg_replace("\n","",ereg_replace("\r","",nl2br(mysql_result($result02,$i,"beschreibung_kurz")))); ?></span>";
			Bild[<? print $i; ?>]	= "<? print WEBSERVER_PATH.DIR_PICS.DIR_INHALTE.mysql_result($result02,$i,"bild"); ?>";
			</script>

Und so sieht es im Moment aus, wenn man direkt den Quelltext der Seite aufruft.
HTML:
<script language="JavaScript">
			var Titel	= new Array();
			var Bild	= new Array();
			
			Titel_reset = unescape("%3Cspan%20class%3D%27text%27%3EAls%20Digitales%20R%F6ntgen%20werden%20in%20der%20Radiologie%20Verfahren%20zum%20R%F6ntgen%20bezeichnet%2C%20bei%20denen%20die%20Aufnahmen%20digitalisiert%20werden.%0D%0ADigitales%20R%F6ntgen%20ist%20nur%20sinnvoll%20im%20Zusammenspiel%20mit%20einem%20RIS%20und%20einem%20Picture-Archiving-and-Communication-System%20PACS.%20Der%20gro%DFe%20Unterschied%20zum%20R%F6ntgenfilm%20ist%20die%20bessere%20Nachbearbeitung%20und%20die%20Integration%20in%20den%20Ablauf%20eines%20Krankenhauses%20oder%20in%20einer%20Arztpraxis.%0D%0ADigitale%20R%F6ntgenbilder%20werden%20wie%20bei%20einem%20normalen%20R%F6ntgen%20mit%20einem%20R%F6ntgenstrahler%20gemacht.%20Die%20Bilder%20werden%20meist%20durch%20einen%20Festk%F6rperdetektor%20oder%20durch%20eine%20R%F6ntgenspeicherfolie%20digitalisiert%20und%20im%20PACS%20gespeichert.%20Nach%20der%20Aufnahme%20stehen%20verschiedene%20M%F6glichkeiten%20der%20digitalen%20Bildbearbeitung%20zur%20Verf%FCgung.%0D%0AIn%20der%20Praxis%20wird%20das%20Speicherfoliensystem%20FCR%20der%20Firma%20Fuji%20genutzt.%20Auch%20als%20digitale%20Mammographie%20%28siehe%29.%0D%0AAls%20hochintegriertes%20Befundungs-%20und%20Archivierungssystem%20%28RIS%2FPACS%29%20wird%20Centricity%20der%20Firma%20GE%20Medical%20Systems%20verwendet.</span>");
			Bild_reset = document.head_image.src;
			
			function change_content(i)
			{
				document.head_image.src	= Bild[i];
				
				if(document.all)
				{
			   		document.all.Textlayer.innerHTML = Titel[i];
				}
				else if(document.layers)
		  		{
		   			document.Textlayer.document.open();
		   			document.Textlayer.document.write(Titel[i]);
		   			document.Textlayer.document.close();
		  		}
			}
			
			function reset_content()
			{
				document.head_image.src	= Bild_reset;
				
				if(document.all)
				{
			   		document.all.Textlayer.innerHTML = Titel_reset;
				}
				else if(document.layers)
		  		{
		   			document.Textlayer.document.open();
		   			document.Textlayer.document.write(Titel_reset);
		   			document.Textlayer.document.close();
		  		}
			}
			</script>

						<script language="JavaScript">
			Titel[0]	= "<span class='title'>Röntgenaufnahme Sprunggelenk</span><span class='text'><br></span>";
			Bild[0]	= "pics/inhalte/317_8759.jpg";
			</script>
			<td class="klein" align="left">
				<a href="detail.php?site_ID=7&navigations_ID=139&inhalts_ID=317&parent_ID=0" onMouseOver="javascript:change_content('0');" onMouseOut="javascript:reset_content();"><img src="pics/inhalte/thumbnails/317_8759.jpg" border=0 width="160" height="160" alt="Röntgenaufnahme Sprunggelenk"></a><br>Röntgenaufnahme Sprunggelenk			</td>
						<script language="JavaScript">
			Titel[1]	= "<span class='title'></span><span class='text'><br></span>";
			Bild[1]	= "pics/inhalte/";
			</script>
 
Also für Textlayer kann ich keine Spätere Verwendung finden.
Im FF funktioniert es wirklich Problemlos.
 
Zuletzt bearbeitet:
Naja...bei mir funktioniert da im FF nur der Bilderaustausch.

Hau am besten erstmal dieses ganze document.layers-Zeugs raus(Netscape4 kann man nun wirklich vernachlässigen:-) ), gebe dem Element, wo der Text angezeigt werden soll, die ID "Textlayer" .

Das document.all-Zeug werfe auch heraus und greife stattdessen per
Code:
document.getElementById('Textlayer')
auf das Element zu.
 

Neue Beiträge

Zurück