Multi-line-alert in Javascript
Dieser code
JS:
alert("Hello again! This is how we" + "\n" + "add line breaks to an alert box!");
nicht funktioniert.
Firefox-JavaScript-Konsole Namen Fehler "unterminated string literal" und deutet auf "- symbol vor "\n".
Ich will das Feuer eine Warnung mit multi-line-text. Kein jQuery, bitte.
- Der problematische code ist nicht dieses Stück code. Beachten Sie, dass der syntaxerror-Nachrichten sind fast immer irreführend
- wenn ich // vor dieser Zeile funktioniert alles einwandfrei
- Dennoch, wenn Sie ausführen, dass der code in der isolation, wird es normal funktionieren, habe es gerade getestet. Bitte mehr code.
- Diese Warnung wird ausgelöst, in Funktion FCKeditor_OnComplete( editorInstance ) { alert("Hallo nochmal! Dies ist, wie wir"+String.fromCharCode(10)+"hinzufügen Zeilenumbrüche um eine alert-box!");
- Diese Funktion fehlt
}
funktioniert aber nach dem hinzufügen - ich senkte }
- Es ist nicht das problem, aber
"\n"
muss nicht getrennt werden, sagen Sie einfach"...how we\nadd line..."
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Noch nicht getestet, aber funktioniert das?
Dies nur mir passiert ist... genau. Ich brauchte, um es zu ändern
\\n
statt\n
.Hinzufügen ändern
\n
zu\\n
sollte funktionieren, wenn du das rendering der alert-Server-Side (ie: Auf einer website), aber wenn Sie mit der client-Seite (dh: - Prüfung etc.) nur\\n
wird nicht funktionieren, Arbeit. Zum Beispiel, versuchen Sie, die folgenden Zeilen auf diese website.oder:
In jsfiddle, das erste funktioniert, weil es läuft, der es der client-Seite, aber wenn Sie es serverside, Bedarf es der doppelten Schrägstrich (
\\n
) ich bin mir nicht sicher, warum das so ist, aber ich habe es getestet, mehrmals.Hoffe, das hilft!
Frage ist alt, aber ich möchte eine klare Antwort und erklären, warum dies geschieht für andere, die kommt hier:
Erste von allen, es ist nichts falsch mit dem JavaScript-code-Zeile in die Frage. Es ist absolut gültig und produziert keine Fehler. Der Grund für das problem in Vitalmax' Fall war, höchstwahrscheinlich, weil er/Sie hat nicht geschrieben, zusätzlichen code, die Sie umgeben, die Linie.
Hier ist ein Beispiel in PHP, das zeigt, warum der JS-parser beschwert sich über die syntax:
Analysiert die server-side-Ausgang ist dann (dies ist, was der browser bekommt):
In JavaScript-strings muss nicht haben Sie echte Zeilenumbrüche. Stattdessen, Sie müssen immer escaped werden (wie: \n -), so dass der browser beschwert sich über ein "unterminated string literal" an den echten Zeilenumbruch. Es gibt einige Ausnahmen von dieser Regel, wie für die horizontale Tabulatoren (\t). Also (in diesem Fall) Sie haben zu entkommen der Zeilenumbrüche zweimal mit \ "\n". Also, wenn PHP analysiert und konvertiert ihn aus dem \\n zu \n kann mit JavaScript umwandeln von \n in [real line break].
Richtige PHP-Beispiel wäre:
Oder:
Im zweiten Fall müssen Sie nicht die doppelte Flucht, weil maskierte Zeichen in PHP strings mit einfachen Anführungszeichen sind nicht entschlüsselt (\n bleibt \n).
Dieses Skript funktioniert für mich.
error "missing ; before statement"
Das sagt mir, das Semikolon fehlt, die von oben diese Zeile code. Übliche syntax gotchya werden, wenn Aussagen, die nicht in der Nähe Klammern, richtig. Oder geschweiften Klammern.
Verwenden Sie einfache Anführungszeichen.
Ein anderer Weg ist mit
String.fromCharCode()
:alert("Hallo nochmal! Dies ist, wie wir" + "\n" + "fügen Sie Zeilenumbrüche, um eine alert-box!");
\n --> das ist eine Arbeit
arbeiten mit \n
\n --> funktioniert nicht, es genauso zu behandeln, die als kontinuierliche Zeichenkette alert msges
nicht arbeiten mit \n
Einen mehr funktionale Weise würde ich vorschlagen, definieren Sie Ihre eigenen
print()
- Funktion, und vergessen setzen\\n
für jede Zeile manuellJS:
Nun können Sie sich telefonisch an die
print()
mit mehreren Argumenten und jedes argument wird in einer separaten Zeile.