document.write
technolust
- javascript
Hallo,
nachdem ich gestern hier im Forum gelernt habe, dass man mit der Methode document.write auch HTML-Code ausgeben kann, der dann interpretiert wird (ich wollte in einem iframe eine html-seite laden deren Adresse in einer Variablen abgelegt ist), habe ich heute an einer anderen Stelle genau damit ein Problem.
Ich möchte einen Image-Button anzeigen, der sich beim Draufklicken oder beim Mouseover verändert. Soweit klappt es auch noch.
Nun soll aber beim Draufklicken eine Seite aufgerufen werden, deren Adresse in einer Variablen abgelegt ist.
Ich habe folgenden Code in einer Tabellenzeile:
<a href="./seite1.html" target="data"
onClick= "if(document.images)
document.library_control1.src='./images/button1.gif';
onMouseOver ="if(document.images)
document.library_control1.src='./images/button2.gif';"
onMouseOut ="if(document.images)
document.library_control1.src='./images/button3.gif';">
<img name="control" src="./images/button4.gif"
width="60" height="32" border="0" alt="" /> </a>
Wie gesagt, das klappt noch alles.
Diesen ganzen Code möchte ich jetzt in ein document.write() packen,
damit ich die seite1.html durch eine variable ersetzen kann.
Also in etwas so:
document.write(' < href="'+variable+'" target="data" .......
Ich habe heute gelernt das ich dann alles in einer Zeile schreiben muss, da document.write() keine Zeilenumbrüche kann. Oder alternativ ich pack erst alle Zeilen in eine Variable und schreib dann
document.write(variable).
Ich habe mich erstmal dafür entschieden alles in einer Zeile zu schreiben und das document.write(' ');
drumherum zu bauen.
Jetzt bekomme ich aber die Fehlermeldung "Bezeichner erwartet".
Wo kann das Problem liegen? Ich hab erst seit kurzem mit Javascript angefangen. Wahrscheinlich ist es nur eine Kleinigkeit aber ich komm nicht drauf.
VIelen Danke!
Michael
Hallo technolust,
Ich habe heute gelernt das ich dann alles in einer Zeile schreiben muss, da document.write() keine Zeilenumbrüche kann.
Wer erzaehlt dir sowas?
Du hast mehrere Moeglichkeiten
1. Du schreibst anstatt document.write() document.writeln(), das erzeugt eine neue Zeile
2. Du schreibst am Ende ein '\n' dazu, was ebenfalls einen Zeilenumbruch erzeugt
3. Du concatinierst (=fuegst zusammen) Deinen ganzen Inhalt und gibst ihn mit einem document.write() aus
4. Du benutzt document.write ueber mehrere Zeilen
Zur Verdeutlichung das Ganze nochmal mit Zeilenumbruechen in Javascript
Variante 1
document.writeln('Du hast mehrere Moeglichkeiten');
document.writeln('1. Du schreibst anstatt document.write() document.writeln(), das erzeugt eine neue Zeile');
Variante 2
document.write('Du hast mehrere Moeglichkeiten\n');
document.write("2. Du schreibst am Ende ein '\n' dazu, was ebenfalls einen Zeilenumbruch erzeugt\n");
Variante 3
var test = 'Du hast mehrere Moeglichkeiten\n'
+ 'Du concatinierst (=fuegst zusammen) Deinen ganzen Inhalt und gibst ihn mit einem document.write() aus';
document.write(test);
Variante 4
document.write('Du hast mehrere Moeglichkeiten\n'
+ '4. Du benutzt document.write ueber mehrere Zeilen');
Jetzt bekomme ich aber die Fehlermeldung "Bezeichner erwartet".
So eine Fehlermeldung sieht ziemlich nach Internet Explorer aus. Wenn Du aber Fehlermeldungen haben willst, die auch was bedeuten, bist Du mit der Javascript-Console in Firefox/Mozilla wesentlich besser bedient.
Ein sehr gaengiger Fallstrick ist der mit den Anfuehrungszeichen
Du kannst ja entweder document.write('...') oder document.write("...") benutzen (doppelte/einfache Anfuerungszeichen)
Was du nimmst, haengt unter anderm damit zusammen, ob in deinem String selbst Anfuehrungszeichen vorhanden sind. Diese musst Du entsprechend maskieren.
Beispiel:
Der String fuer die Ausgabe waere -> Ein Satz mit "zwei" Anfuehrungszeichen
Dieses Beispiel gilt auch umgekehrt, also wenn du die " gegen ' austauschst und umgekehrt
Eine andere typische Falle ist, das Anfuehrungszeichen im Bereich von Variablen falsch gesetzt werden
var Zahl = 'zwei' // "zwei" waere auch ok, zwei waere falsch
document.write("Ein Satz mit " + Zahl + " Anfuehrungszeichen") funktioniert
document.write('Ein Satz mit ' + Zahl + ' Anfuehrungszeichen') funktioniert
document.write('Ein Satz mit ' + Zahl + " Anfuehrungszeichen") funktioniert
document.write('Ein Satz mit " + Zahl + " Anfuehrungszeichen") scheitert
document.write("Ein Satz mit " + Zahl + ' Anfuehrungszeichen) scheitert
Gruß,
Dieter