Return in JavaScript-Zeile
Beate Mielke
- javascript
0 der-Leo0 n.d. parker0 Mirko Richter0 Daniel Thoma0 Antje Hofmann
Hallo ForumerInnen,
ich habe folgende Zeilen in meiner HTML-Datei:
<!--
document.write("<a href="javascript:show('x')">bla</a>");
//-->
Aus programmtechnischen Gruenden muss ich mitten in dem Ausdruck einen Zeilenumbruch einfuegen, und zwar an dieser Stelle:
<!--
document.write("<a href="javascript:show('x
')">bla</a>");
//-->
--------------------------------------------------------------------------------------------
Ich brauche diesen Umbruch, weil ein anderes Programm später dort noch etwas hineinschreiben soll.
Durch diesen Umbruch kommt es aber zu einer Fehlermeldung. Gibt es eine Moeglichkeit, so wie den \ in C,
dass man dem JavaScript mitteilt, dass es in der naechsten Zeile weitergeht?
Ich brauche das "Return", eine ewig lange Zeile schreiben funktioniert in dem Zusammenhang nicht.
Gruss
Beate Mielke
hallo
versuch doch einfach mal ein "\n" zu schreiben......
der-Leo
Hallo Leo,
versuch doch einfach mal ein "\n" zu schreiben......
das hat nun leider so gar nichts mit meinem Problem zu tun, das gibt nur noch ein zusätzliches Return an einer Stelle, wo ich es überhaupt nicht brauche.
Gruss
Beate Mielke
hi,
document.write("<a href="javascript:show('x')">bla</a>");
mach doch einfach folgendes:
<!--
var x='x'; // Hier schreibt das andere Programm was rein
document.write('<a href="javascript:show(x)">bla</a>'');
//-->
Ich brauche das "Return", eine ewig lange Zeile schreiben funktioniert in dem Zusammenhang nicht.
hae? was fuer ein return? (hab ich was uebersehen?)
cua
n.d.p.
Hallo ndp,
ich schaetze da hast Du wirklich was uebersehen, ich erkläre es lieber noch einmal anders:
in den folgenden Zeilen soll x durch Programmcode aus einem anderen Programm ersetzt werden.
<!--
document.write("<a href="javascript:show('x')">bla</a>");
//-->
Dadurch entstehen an der Stelle, an der jetzt x steht, mehere Zeilen. Das sieht dann z.B. so aus:
<!--
document.write("<a href="javascript:show('
12:00Uhr
13:00 Uhr
14:00 Uhr
')">bla</a>");
Damit kommt Javascript aber nicht zurecht und es kommt zu Fehlermeldungen.
Was ich jetzt suche ist irgendeine Möglichkeit, Javascript mitzuteilen, dass es in der naechsten Zeile weitergehen soll.
Also zum beispiel nach 12:00 geht es noch weiter mit 13:00 u.s.w.
Ich hoffe das war jetzt klarer.
Gruss
Beate Mielke
<!--
document.write("<a href="javascript:show('
12:00Uhr
13:00 Uhr
14:00 Uhr
')">bla</a>");
hi, beate
afaik kann ueberall ein zeilenumruch stehen, wo auch ein leerzeichen stehen kann, es sei denn die zeile ergibt schon eine geschlossene Anweisung *g*
\ wie in C gibt es in JS wohl nicht, aber lt. meinem JS-Buch sollte es dann so funzen:
<!--
document.write("<a href="javascript:show(
'12:00Uhr
13:00 Uhr
14:00 Uhr'
)">bla</a>");
vielleicht auch so:
document.write[..]
'
Eintrag1
Eintrag2
Eintragx
'
)">bla[..]
*g* ich habs aber nicht ausprobiert...
cua
n.d.p.
Hi ndp,
<!--
document.write("<a href="javascript:show(
'12:00Uhr
13:00 Uhr
14:00 Uhr'
)">bla</a>");vielleicht auch so:
document.write[..]
'
Eintrag1
Eintrag2
Eintragx
'
)">bla[..]*g* ich habs aber nicht ausprobiert...
funktioniert leider auch nicht :-(
Gruss
Beate Mielke
hi, beate
mir faellt nur eine loesung ein:
<script language="JavaScript"><!--
var x=/*start*/'
12:00 Uhr
13:00 Uhr
14:00 Uhr
';//ende
document.write("<a href="javascript:show(x)">bla</a>");
//--></script>
dein programm muss dann wohl nochmal rueberlaufen und zwischen /*start*/ und //ende alle \n entfernen...
dann siehts so aus und funktioniert *g* :
<script language="JavaScript"><!--
var x=/*start*/'12:00 Uhr13:00 Uhr14:00 Uhr';//ende
document.write("<a href="javascript:show(x)">bla</a>");
//--></script>
cua
n.d.p.
Hallo ndp,
<script language="JavaScript"><!--
var x=/*start*/'
12:00 Uhr
13:00 Uhr
14:00 Uhr
';//ende
document.write("<a href="javascript:show(x)">bla</a>");
//--></script>dein programm muss dann wohl nochmal rueberlaufen und zwischen /*start*/ und //ende alle \n entfernen...
dann siehts so aus und funktioniert *g* :<script language="JavaScript"><!--
var x=/*start*/'12:00 Uhr13:00 Uhr14:00 Uhr';//ende
document.write("<a href="javascript:show(x)">bla</a>");
//--></script>
leider war das nicht das, was ich gemeint habe. Das Programm kann leider nicht noch einmal darüber laufen, das ist eine ziemlich komplizierte Geschichte (wuerde Seiten fuellen, um das zu erklaeren ;-))
Gruß
Beate Mielke
Hallo Beate!
Aus programmtechnischen Gruenden muss ich mitten in dem Ausdruck einen Zeilenumbruch einfuegen, und zwar an dieser Stelle:
<!--
document.write("<a href="javascript:show('x
')">bla</a>");
//-->
So sollte es gehen:
<!--
document.write("<a href="javascript:show('x" +
"')">bla</a>");
//-->
Gruss
Mirko
Hallo Mirko,
So sollte es gehen:
<!--
document.write("<a href="javascript:show('x" +
"')">bla</a>");
//-->
So, wie es jetzt hier steht, funktioniert es auch, aber es sollte auch für diesen Fall gehen:
<!--
document.write("<a href="javascript:show('
hallo1
hallo2
hallo3
')">bla</a>");
//-->
Das Problem ist, dass in den drei Hallozeilen kein weiteres Zeichen eingefügt werden darf.
Vielleicht hast Du ja noch eine Idee.
Gruss
Beate Mielke
Hallo Beate!
<!--
document.write("<a href="javascript:show('x" +
"')">bla</a>");
//-->So, wie es jetzt hier steht, funktioniert es auch,
Das ist ja schon mal was :-))
Ich habe zum testen Deine Anweisung mal etwas umgeschrieben:
<!--
test = "huhu"
document.write("Ausgabe Beginn <a href="javascript:alert('" +
test +
test +
test +
"')">bla</a> Ausgabe Ende");
//-->
Das geht auch. Du wolltest aber, dass die 3 Zeilen mit Deinen Variablen in jeweils einer seperaten Zeile stehen. Dann teste das mal aus:
<!--
test = "huhu"
document.write("Ausgabe Beginn <a href="javascript:alert('" +
test
+
test
+
test
+
"')">bla</a> Ausgabe Ende");
//-->
Für Deinen Fall müsste es dann so aussehen:
<!--
document.write("<a href="javascript:show('" +
hallo1
+
hallo2
+
hallo3
+
"')">bla</a>");
//-->
Gruss
Mirko
Hallo Mirko,
<!--
test = "huhu"document.write("Ausgabe Beginn <a href="javascript:alert('" +
test +
test +
test +
"')">bla</a> Ausgabe Ende");
//-->Das geht auch. Du wolltest aber, dass die 3 Zeilen mit Deinen Variablen in jeweils einer seperaten Zeile stehen. Dann teste das mal aus:
<!--
test = "huhu"document.write("Ausgabe Beginn <a href="javascript:alert('" +
test
+
test
+
test
+
"')">bla</a> Ausgabe Ende");
//-->Für Deinen Fall müsste es dann so aussehen:
<!--
document.write("<a href="javascript:show('" +
hallo1
hallo2
+
hallo3
+
"')">bla</a>");
//-->
Sieht ja schon ganz gut aus, NUR die drei Zeilen sind REINER TEXT (also keine Variablen) und duerfen keine anderen Zeichen als den Text selbst enthalten, meinst Du dass Dui dafuer noch eine Idee hast?
Gruss
Beate Mielke
Hallo Beate
Das geht mit \ ab Zeilenende.
Tschüs
Daniel
hi daniel
Das geht mit \ ab Zeilenende.
*g* nee, gehts nich
cua
n.d.p.
hi n.d.p
Das geht mit \ ab Zeilenende.
*g* nee, gehts nich
Ätsch geht es doch ;-)
var txt = "test\ test\ test";
wird von Netscape interpretiert wie
var txt = "test\ntest\ntest";
und vom IE wie
var txt = "testtesttest";
Tschüs
Daniel
hi, daniel
Ätsch geht es doch ;-)
okay, okay, ueberzeugt
aber leider keine loesung fuer beates prob, ...
cua
n.d.p.
Hallo
Dann sehe ich keine Lösung.
Wird ihr nichts andres übrich bleiben als uns in ihr projekt einzuweien.
Ich sehe nähmlich so keine lösung mehr
Tschüs
Daniel
Hallo Daniel,
Dann sehe ich keine Lösung.
Wird ihr nichts andres übrich bleiben als uns in ihr projekt einzuweien.
Ich sehe nähmlich so keine lösung mehr
Deine Loesung mit dem Backslash funktioniert tatsächlich auch, ich habe sie jetzt nochmal alternativ zu Antjes Vorschlag ausprobiert.
Ich hatte nur zuerst dabei nur einen Fehler gemacht, aber jetzt geht's.
Also Dir auch nochmal danke + Gruss
Beate Mielke
Hallo Beate,
Ich brauche diesen Umbruch, weil ein anderes Programm später dort noch etwas hineinschreiben soll.
Durch diesen Umbruch kommt es aber zu einer Fehlermeldung. Gibt es eine Moeglichkeit, so wie den \ in C,
dass man dem JavaScript mitteilt, dass es in der naechsten Zeile weitergeht?
folgende Lösung könnte ich dir anbieten:
<div style="visibility:hidden;"><layer name="NN" visibility="hide">
<form name="a1">
<textarea name="a2" cols="1" rows="1">
abc
def
ghi
</textarea>
</form>
</layer></div>
<script language="JavaScript">
<!--
if (document.layers) x=document.NN.document.a1.a2.value;
else x=document.a1.a2.value;
document.write(x);
//-->
</script>
Das Textarea ist versteckt, dazwischen kann dein Programm bequem seinen Code schreiben und auf diesen Inhalt kannst du wiederum leicht mit JavaScript zugreifen.
Viele Grüße
Antje
Hallo Antje,
folgende Lösung könnte ich dir anbieten:
<div style="visibility:hidden;"><layer name="NN" visibility="hide">
<form name="a1">
<textarea name="a2" cols="1" rows="1">abc
def
ghi</textarea>
</form></layer></div>
<script language="JavaScript">
<!--
»»
if (document.layers) x=document.NN.document.a1.a2.value;
»» else x=document.a1.a2.value;
document.write(x);
//-->
</script>Das Textarea ist versteckt, dazwischen kann dein Programm bequem seinen Code schreiben und auf diesen Inhalt kannst du wiederum leicht mit JavaScript zugreifen.
diese Lösung scheint mir so ziemlich das zu sein, wonach ich gesucht habe. Allerdings bekomme ich eine Fehlermeldung:
'document.a1.a2' ist kein Objekt - und zwar in der Zeile
x2 = document.a1.a2.value;
Könntest Du bitte nochmal schauen, ob da irgendetwas geaendert werden muesste?
Danke und Gruss
Beate Mielke
Hallo Antje, hier noch ein Nachtrag:
'document.a1.a2' ist kein Objekt - und zwar in der Zeile
x2 = document.a1.a2.value;Könntest Du bitte nochmal schauen, ob da irgendetwas geaendert werden muesste?
Das neue Formular (Dein Vorschlag) liegt bei mir jetzt innerhalb eines anderen Formulars. Könnte das vielleicht die Ursache fuer die Fehlermeldung sein?
Unter Netscape laeuft es uebrigens einwandfrei.
Gruss
Beate Mielke
Hallo Beate!
Das neue Formular (Dein Vorschlag) liegt bei mir jetzt innerhalb eines anderen Formulars. Könnte das vielleicht die Ursache fuer die Fehlermeldung sein?
Formulare darfst du nicht verschateln.
Grüße
Thomas
Hallo Beate
'document.a1.a2' ist kein Objekt - und zwar in der Zeile
x2 = document.a1.a2.value;
Das neue Formular (Dein Vorschlag) liegt bei mir jetzt innerhalb eines anderen Formulars. Könnte das vielleicht die Ursache fuer die Fehlermeldung sein?
Unter Netscape laeuft es uebrigens einwandfrei.
Ja, daran liegt es. Thomas hat dir ja auch gesagt warum. Im NN funktioniert es deshalb weil dieser Layer als eigene Dokumente betrachtet und damit das Formular als ein einzelnes betrachtet.
Du mußt das Formular also aus dem Formular rausnehmen oder zwei getrennte Lösungen verwenden.
NN: die Lösung von oben, da geht es nicht anders:
IE: <div style="visibility:hidden;" id="inhalt">
deine Texte
</div>
<script>
if (document.all) x2=document.all.inhalt.innerHTML;
</script>
Viele Grüße
Antje
Hallo Antje,
Ja, daran liegt es. Thomas hat dir ja auch gesagt warum. Im NN funktioniert es deshalb weil dieser Layer als eigene Dokumente betrachtet und damit das Formular als ein einzelnes betrachtet.
Du mußt das Formular also aus dem Formular rausnehmen oder zwei getrennte Lösungen verwenden.
NN: die Lösung von oben, da geht es nicht anders:
IE: <div style="visibility:hidden;" id="inhalt">
deine Texte
</div><script>
if (document.all) x2=document.all.inhalt.innerHTML;
</script>
Perfekt ! Genau das war's.
Danke fuer Deine umfangreiche Hilfe.
Gruss
Beate Mielke