Dòng mới trong hộp cảnh báo JavaScript


389

Làm thế nào để bạn đặt một dòng mới vào hộp cảnh báo JavaScript?


1
PHP_EOL làm việc cho tôi mặc dù nhiều câu trả lời khác ở đây không ....
Hayden Thring 11/2/19

Câu trả lời:


593

\nsẽ đặt một dòng mới vào - \nlà mã kiểm soát cho dòng mới.

alert("Line 1\nLine 2");


7
Hoàn toàn chéo trình duyệt
Justin Johnson

4
Nếu tôi sử dụng \ n trong thông báo cảnh báo của mình, hộp thoại thậm chí không hiển thị trong ứng dụng ASP.NET. Microsoft có vấn đề gì với điều này không :)
Hammad Khan

20
Đối với Thợ săn cá sấu, trong ASP.NET đằng sau các cảnh báo mã, bạn cần sử dụng các ký tự thoát, điều này có nghĩa là Registerblabla (bla, bla, "alert ('hi \\ nhi dòng thứ hai')")
NicolasT 16/11/11

5
Trong ASP.NET MVC4, tôi đã sử dụng </br>thay vì \nđể có một dòng mới.
Kevin Meredith

2
Tôi đang làm việc trong MVC 4, và tạo ra một confirm()trong các onsubmittrường hợp xảy ra Html.BeginForm(). \nkhông làm việc cho tôi. Tôi gặp Illegal tokenlỗi khi mã bị tấn công. Rõ ràng bạn cần phải thoát cả ký tự dòng mới và dấu gạch chéo ngược tạo ra ký tự dòng mới, như vậy:\\n
Kehlan Krumme


40

bạn phải sử dụng dấu ngoặc kép để hiển thị char đặc biệt như \ n \ t, v.v ... trong hộp cảnh báo js để lấy ví dụ trong tập lệnh php:

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

Nhưng một vấn đề có thể xảy ra thứ hai khi bạn muốn hiển thị một chuỗi được chỉ định trong trích dẫn kép.

xem văn bản liên kết

Nếu chuỗi được đặt trong dấu ngoặc kép ("), PHP sẽ diễn giải nhiều chuỗi thoát hơn cho các ký tự đặc biệt

chuỗi thoát \ n được chuyển đổi thành 0x0A ASCII Ký tự thoát và ký tự này không được hiển thị trong hộp cảnh báo. Giải pháp bao gồm để thoát khỏi chuỗi đặc biệt này:

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

nếu bạn không biết chuỗi được bao quanh như thế nào, bạn phải chuyển đổi các ký tự đặc biệt thành chuỗi thoát của chúng

$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

Trong C # tôi đã làm:

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

Nó hiển thị như:

Bản văn

Một số văn bản


14

Danh sách mã ký tự đặc biệt trong 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");

Đã sửa đổi: Bạn không cần phải có thêm dấu ngoặc kép và chuỗi


8

Khi bạn muốn viết cảnh báo javascript từ biến php, bạn phải thêm một "\" khác trước "\ n". Thay vào đó, cửa sổ bật lên cảnh báo không hoạt động.

Ví dụ:

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

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

Tại sao câu trả lời này được đánh giá thấp? nếu bạn đang suy nghĩ linh hoạt hơn về mặt lập trình trang web thì đây là một sự trợ giúp lớn.
Jimwel Anobong

Khi đặt var trong PHP với dấu ngoặc kép, PHP sẽ kiểm tra các biến bên trong dấu ngoặc kép. Về mặt lý thuyết, chi phí tài nguyên này. Cách đơn giản và dễ hiểu để tạo js alerttext trong PHP, là sử dụng các trích dẫn đơn và thêm các biến bên ngoài các qout đơn, như $ jsAlert = 'bla bla'. $ Var. ' \ nmore bla bla ';
Terradon

Tôi đồng ý nhưng bạn không bao giờ có thể làm như bạn nói. Trường hợp sử dụng ví dụ, khi tất cả các biến chuỗi đến từ PHP, bạn không thể viết một xử lý cụ thể cho từng chuỗi cần ngắt dòng.
Julha

3

Chỉ trong trường hợp điều này giúp được bất cứ ai, khi thực hiện điều này từ mã C # phía sau tôi đã phải sử dụng ký tự thoát kép hoặc tôi gặp lỗi JavaScript "hằng chuỗi chuỗi bị lỗi":

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

3

Hoạt động với \nnhưng nếu tập lệnh vào thẻ java, bạn phải viết\\\n

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

hoặc là

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

Trong các thẻ Java, bạn chỉ cần thoát nó hai lần. Như trong<%out.print("alert('First line\\nSecond line.')");%>
third_eye

3

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

Chỉ cần thêm một ký tự dòng mới.

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

Đó là những gì Michael Gattuso đã nói cách đây sáu năm rưỡi. Câu trả lời của anh đã được chấp nhận. Điều này dường như không nói bất cứ điều gì mới, và về cơ bản là một bản sao của điều đó.
Quentin

@Quentin: Sự khác biệt là dấu ngoặc đơn so với dấu ngoặc kép ... hoạt động theo cả hai cách, điều mà Michael Gattuso không đề cập đến.
Ole Sauffaus

@OleSauffaus - Đó là một sự khác biệt không liên quan.
Quentin


1

Cảm ơn những gợi ý. Sử dụng dấu "+" là cách duy nhất tôi có thể làm cho nó hoạt động. Đây là dòng cuối cùng của hàm thêm một số số. Tôi chỉ đang học JavaScript thôi:

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

1

\n Sẽ không hoạt động nếu bạn đang ở trong mã java:

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

Tôi biết nó không phải là một câu trả lời, chỉ nghĩ rằng nó là quan trọng.


Ý tôi là Java. Như trong một trang JSP.
third_eye

2
Sau đó, bạn chỉ nên thoát khỏi nhân vật thoát <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
zamber

1

sử dụng ký tự dòng mới của javascript thay vì '\ n' .. ví dụ: "Hello \ nWorld" sử dụng "Hello \ x0AWorld" Nó hoạt động rất tốt !!


Không \xAgiống như \n?
Cristik


0

Trong ứng dụng JAVA, nếu tin nhắn được đọc từ tệp "thuộc tính".

Do biên dịch kép java-html,

bạn sẽ cần thoát gấp đôi.

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

sẽ cho kết quả

First Line
Second Line

-1

Tôi thấy một số người gặp rắc rối với điều này trong MVC, vì vậy ... một cách đơn giản để vượt qua '\ n' bằng Mô hình và trong trường hợp của tôi, ngay cả khi sử dụng văn bản đã dịch, là sử dụng HTML.Raw để chèn văn bản. Điều đó đã sửa nó cho tôi. Trong mã bên dưới, Model.Alert có thể chứa các dòng mới, như "Xin chào \ nWorld" ...

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


-2

Một ký tự dòng mới trong javascript có thể đạt được bằng cách sử dụng \n

Điều này có thể được thực hiện bằng cách sử dụng

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

Đầu ra:

dòng đầu tiên

dòng thứ hai

dòng thứ ba

đây là một jsfiddle chuẩn bị cho cùng.


-2

Tôi đã sử dụng: "\ n \ r" - nó chỉ hoạt động trong dấu ngoặc kép.

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
Thứ tự đúng, nếu bạn khăng khăng sử dụng chấm dứt CRLF \r\nthì không \n\r.
Cristik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.