Nowa linia w polu ostrzeżenia JavaScript

389

Jak wstawić nowy wiersz do pola alertu JavaScript?

Zalążek
źródło
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");

Michael Gattuso
źródło
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
52

 alert("some text\nmore text in a new line");

Wynik:

some text
more text in a new line

Amarghosh
źródło
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>";
greg
źródło
29

W C # zrobiłem:

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

Wyświetla się jako:

Tekst

Jeszcze trochę tekstu

Paul H.
źródło
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
Bisznu Paudel
źródło
9
alert("text\nnew Line Text");

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

Basem Olimy
źródło
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
Julha
źródło
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);
Sir Crispalot
źródło
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');" />
David
źródło
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');
//                                       ^^
Muhammad Awais
źródło
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");
użytkownik2133139
źródło
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.

trzecie oko
źródło
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 !!

Chitra
źródło
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
BiScOtTiNo
źródło
-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)");
Andy
źródło
-1

Możesz użyć \ n dla nowej linii

alert("Welcome\nto Jumanji");

alert("Welcome\nto Jumanji");

Arun Karnawat
źródło
-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.

Yasser Shaikh
źródło
-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
użytkownik2344047
źródło
1
Prawidłowa kolejność, jeśli nalegasz na użycie rozwiązania CRLF, to \r\nnie \n\r.
Cristik