Nowa linia w polu ostrzeżenia JavaScript


389

Jak wstawić nowy wiersz do pola alertu JavaScript?


1
PHP_EOL zadziałało dla mnie, jak wiele innych odpowiedzi tutaj nie ...
Hayden Thring

Odpowiedzi:


593

\nwstawi nowy wiersz - \nbędący kodem sterującym dla nowego wiersza.

alert("Line 1\nLine 2");


7
Całkowicie przeglądarka
Justin Johnson

4
Jeśli użyję \ n w moim komunikacie ostrzegawczym, okno dialogowe nawet nie zostanie wyświetlone w aplikacji ASP.NET. Czy Microsoft ma z tym problem :)
Hammad Khan

20
Dla myśliwego krokodyla, w ASP.NET za alertami kodu, musisz użyć znaków zmiany znaczenia, co oznacza Registerblabla (bla, bla, „alert („ drugi wiersz 'hi \\ nhi') ”)
NicolasT

5
W ASP.NET MVC4 użyłem </br>zamiast \nuzyskać nową linię.
Kevin Meredith,

2
Pracuję w MVC 4 i tworzę confirm()w onsubmitprzypadku Html.BeginForm(). \nnie działa dla mnie Otrzymuję Illegal tokenbłąd, gdy kod zostanie trafiony. Najwyraźniej musisz uciec zarówno od znaku nowej linii, jak i odwrotnego ukośnika, który tworzy znak nowej linii, w ten sposób:\\n
Kehlan Krumme


40

musisz użyć podwójnych cudzysłowów, aby wyświetlić specjalny znak, taki jak \ n \ t etc ... w polu alertu js dla przykładu w skrypcie php:

$string = 'Hello everybody \n this is an alert box';
echo "<script>alert(\"$string\")</script>";

Ale pojawia się drugi możliwy problem, gdy chcesz wyświetlić ciąg określony w cudzysłowie.

patrz tekst linku

Jeśli ciąg jest ujęty w cudzysłów („), PHP zinterpretuje więcej sekwencji specjalnych dla znaków specjalnych

sekwencje specjalne \ n są przekształcane jako 0x0A ASCII Znak ucieczki i ten znak nie jest wyświetlany w polu alertu. Rozwiązanie polega na uniknięciu tej specjalnej sekwencji:

$s = "Hello everybody \\n this is an alert box";
echo "<script>alert(\"$string\")</script>";

jeśli nie wiesz, jak łańcuch jest zamknięty, musisz przekształcić znaki specjalne w ich sekwencje specjalne

$patterns = array("/\\\\/", '/\n/', '/\r/', '/\t/', '/\v/', '/\f/');
$replacements = array('\\\\\\', '\n', '\r', '\t', '\v', '\f');
$string = preg_replace($patterns, $replacements, $string);
echo "<script>alert(\"$string\")</script>";

29

W C # zrobiłem:

alert('Text\\n\\nSome more text');

Wyświetla się jako:

Tekst

Jeszcze trochę tekstu


14

Lista kodów znaków specjalnych w JavaScript:

Code    Outputs
\'  single quote
\"  double quote
\\  backslash
\n  new line
\r  carriage return
\t  tab
\b  backspace
\f  form feed

9
alert("text\nnew Line Text");

Zmodyfikowane: Nie musisz mieć dodatkowych cudzysłowów i ciągów


8

Kiedy chcesz napisać w alercie javascript ze zmiennej php, musisz dodać inne „\” przed „\ n”. Zamiast tego wyskakujące okienko nie działa.

dawny:

PHP :
$text = "Example Text : \n"
$text2 = "Example Text : \\n"

JS:
window.alert('<?php echo $text; ?>');  // not working
window.alert('<?php echo $text2; ?>');  // is working

Dlaczego ta odpowiedź jest niedoceniana? jeśli myślisz o wiele bardziej dynamicznie, jeśli chodzi o programowanie stron internetowych, jest to duża pomoc.
Jimwel Anobong

Podczas ustawiania zmiennej w PHP z podwójnymi cudzysłowami, PHP sprawdza zmienne wewnątrz podwójnych cudzysłowów. Teoretycznie kosztuje to zasoby. Prostym i bezpośrednim sposobem tworzenia tekstu ostrzegawczego js w PHP jest użycie pojedynczych cudzysłowów i dodawanie zmiennych poza pojedynczymi qoutes, takich jak $ jsAlert = 'bla bla'. $ Var. ' \ nmore bla bla ';
Terradon

Zgadzam się, ale nigdy nie możesz zrobić tak, jak powiedziałeś. Przykładowy przypadek użycia, gdy wszystkie zmienne łańcuchowe pochodzą z PHP, nie można napisać konkretnej obsługi dla każdego łańcucha, który wymaga podziału linii.
Julha,

3

Na wypadek, gdyby to pomogło komukolwiek, robiąc to z kodu C # za mną, musiałem użyć podwójnego znaku zmiany znaczenia lub dostałem błąd JavaScript „niezakończonej ciągu znaków”:

ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptName", "alert(\"Line 1.\\n\\nLine 2.\");", true);

3

Działa z, \nale jeśli skrypt znajduje się w tagu Java, musisz napisać\\\n

<script type="text/javascript">alert('text\ntext');</script>

lub

<h:commandButton action="#{XXXXXXX.xxxxxxxxxx}" value="XXXXXXXX" 
    onclick="alert('text\\\ntext');" />

W tagach Java wystarczy dwa razy uciec. Jak w<%out.print("alert('First line\\nSecond line.')");%>
Third_eye

3

alert('The transaction has been approved.\nThank you');

Po prostu dodaj znak nowej linii \ n.

alert('The transaction has been approved.\nThank you');
//                                       ^^

Tak powiedział Michael Gattuso sześć i pół roku temu. Jego odpowiedź została zaakceptowana. To nie wydaje się mówić nic nowego i jest w zasadzie kopią tego.
Quentin,

@Quentin: Różnica jest pojedyncza vs. podwójne cudzysłowy ... działa w obie strony, o których Michael Gattuso nie wspomniał.
Ole Sauffaus,

@OleSauffaus - To nieistotna różnica.
Quentin,


1

Dzięki za podpowiedzi. Używanie znaku „+” to jedyny sposób, w jaki mogę go uruchomić. To ostatni wiersz funkcji, która dodaje pewne liczby. Sam uczę się JavaScript:

alert("Line1: The sum is  " + sum + "\n" + "Line 2");

1

\n nie będzie działać, jeśli jesteś w kodzie Java:

<% System.out.print("<script>alert('Some \n text')</script>"); %>

Wiem, że to nie jest odpowiedź, tylko pomyślałem, że to ważne.


Miałem na myśli Javę. Jak na stronie JSP.
third_eye

2
Następnie powinieneś po prostu uciec od postaci ucieczki <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
zamber

1

użyj nowego wiersza znaku javascript zamiast „\ n” .. np .: „Hello \ nWorld” użyj „Hello \ x0AWorld” Działa świetnie !!


Czy to nie \xAto samo co \n?
Cristik


0

W aplikacji JAVA, jeśli wiadomość jest odczytywana z pliku „właściwości”.

Ze względu na podwójną kompilację java-html,

będziesz potrzebował podwójnej ucieczki.

jsp.msg.1=First Line \\nSecond Line

spowoduje

First Line
Second Line

-1

Widziałem, że niektórzy ludzie mieli z tym problem w MVC, więc ... prostym sposobem na przekazanie „\ n” przy użyciu Modelu, aw moim przypadku nawet przy użyciu przetłumaczonego tekstu, jest użycie HTML.Raw do wstawienia tekstu. To naprawiło to dla mnie. W poniższym kodzie Model.Alert może zawierać nowe wiersze, takie jak „Hello \ nWorld” ...

alert("@Html.Raw(Model.Alert)");


-2

Nowy znak wiersza w javascript można uzyskać za pomocą \n

Można to zrobić za pomocą

alert("first line \n second line \n third line");

Wynik :

Pierwsza linia

druga linia

trzecia linia

oto jsfiddle przygotowany na to samo.


-2

Użyłem: „\ n \ r” - to działa tylko w podwójnych cudzysłowach.

var fvalue = "foo";
var svalue = "bar";
alert("My first value is: " + fvalue + "\n\rMy second value is: " + svalue);

will alert as:

My first value is: foo
My second value is: bar

1
Prawidłowa kolejność, jeśli nalegasz na użycie rozwiązania CRLF, to \r\nnie \n\r.
Cristik
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.