Новий рядок у вікні попередження JavaScript


389

Як ввести новий рядок у поле попередження JavaScript?


1
PHP_EOL працював на мене, хоча, як і багато інших відповідей тут, не було ....
Hayden Thring,

Відповіді:


593

\nвведе новий рядок - \nце контрольний код для нового рядка.

alert("Line 1\nLine 2");


7
Повністю перехрещений браузер
Джастін Джонсон

4
Якщо я використовую \ n у своєму попереджувальному повідомленні, діалогове вікно навіть не відображається у програмі ASP.NET. Чи має Microsoft проблеми з цим :)
Хаммад Хан

20
Для мисливця за крокодилами, у ASP.NET за кодовим сповіщенням, потрібно використовувати символи втечі, це означає Registerblabla (bla, bla, "alert ('привіт \\ nhi другий рядок')")
NicolasT

5
В ASP.NET MVC4 я використовував </br>замість того, \nщоб отримати новий рядок.
Кевін Мередіт

2
Я працюю в MVC 4 і створюю confirm()на onsubmitвипадок Html.BeginForm(). \nне працює для мене. Я отримую Illegal tokenпомилку, коли код потрапляє. Мабуть, вам потрібно уникнути як символу \\n
нової лінії


40

вам потрібно використовувати подвійні лапки, щоб відобразити спеціальні символи, такі як \ n \ t тощо ... у полі сповіщення js для прикладу в php-скрипті:

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

Але друга можлива проблема виникає, коли ви хочете відобразити рядок, вказаний у подвійному цитуванні.

див. текст посилання

Якщо рядок укладено у подвійні лапки ("), PHP буде інтерпретувати більше послідовностей для спеціальних символів

послідовності втечі \ n перетворюються як символ 0x0A ASCII, що уникнув, і цей символ не відображається у вікні попередження. Рішення полягає у тому, щоб уникнути цієї спеціальної послідовності:

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

якщо ви не знаєте, як вкладається рядок, вам доведеться перетворити спеціальні символи в їх послідовності втечі

$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

У C # я зробив:

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

Він відображається як:

Текст

Ще трохи тексту


14

Список кодів спеціальних символів на JavaScript:

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


8

Коли ви хочете писати у javascript-попередженні від змінної php, вам слід додати інше "\" перед "\ n". Натомість спливаюче вікно сповіщення не працює.

колишній:

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

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

Чому ця відповідь недооцінена? якщо ви думаєте, як динамічніше диктувати веб-сторінки, це велика допомога.
Jimwel Anobong

Встановлюючи var у PHP з подвійними лапками, PHP перевіряє наявність змінних всередині подвійних лапок. Теоретично це коштує ресурсів. Простий і простий спосіб створення js alartext у PHP, це використання одиничних лапок і додавання змінних за межами одиничних qoutes, як $ jsAlert = 'bla bla'. $ Var. ' \ n більше bla bla ';
Террадон

Я згоден, але ти ніколи не можеш зробити так, як ти сказав. Приклад використання випадку, коли всі змінні рядка походять від PHP, ви не можете написати певну обробку для кожної рядки, яка потребує розриву рядків.
Julha

3

На всякий випадок, коли це допомагає комусь, коли роблю це з коду C # позаду, мені довелося використовувати подвійний символ утечі або я отримав помилку JavaScript "невстановленої константи рядка":

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

3

Працює з, \nале якщо сценарій знаходиться в тезі Java, ви повинні написати\\\n

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

або

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

У тегах Java вам потрібно просто уникнути її двічі. Як і в<%out.print("alert('First line\\nSecond line.')");%>
third_eye

3

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

Просто додайте символ \ n нового рядка \ n.

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

Це сказав Майкл Гаттузо шість з половиною років тому. Його відповідь була прийнята. Здається, це не означає нічого нового, і в основному є його копією.
Квентін

@Quentin: Різниця є одинарною проти подвійних лапок ... працює обома способами, про які Майкл Гаттузо не згадував.
Оле Савф

@OleSauffaus - Це неактуальна різниця.
Квентін


1

Дякую за підказки. Використання знаку "+" - це єдиний спосіб, коли я міг би змусити його працювати. Це останній рядок функції, який додає деякі числа. Я просто вивчаю JavaScript:

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

1

\n не буде працювати, якщо ви всередині коду Java:

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

Я знаю, що це не відповідь, я просто вважав, що це важливо.


Я мав на увазі Яву. Як на сторінці JSP.
third_eye

2
Тоді вам слід просто уникнути персонажа втечі <% System.out.print("<script>alert('Some \\n text')</script>"); %>.
замбер

1

використовуйте новий рядовий символ javascript замість '\ n' .. Наприклад: "Hello \ nWorld" використовуйте "Hello \ x0AWorld" Це чудово працює !!


Це не \xAте саме, що \n?
Крістік


0

У додатку JAVA, якщо повідомлення читається з файла "властивостей".

Завдяки подвійній компіляції java-html,

вам знадобиться подвійний втечу.

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

призведе до

First Line
Second Line

-1

Я бачив, що деякі люди мали проблеми з цим у MVC, тому ... простий спосіб передати '\ n' за допомогою Моделі, а в моєму випадку навіть за допомогою перекладеного тексту - використовувати HTML.Raw для вставки тексту. Це зафіксувало це для мене. У наведеному нижче коді Model.Alert може містити нові рядки, як-от "Hello \ nWorld" ...

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


-2

Новий символ рядка в JavaScript може бути досягнутий за допомогою \n

Це можна зробити за допомогою

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

Вихід:

перша лінія

другий рядок

третій рядок

ось jsfiddle, підготовлений для того ж.


-2

Я використав: "\ n \ r" - він працює лише у подвійних лапках.

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
Правильний порядок, якщо ви наполягаєте на використанні припинення CRLF є \r\n, ні \n\r.
Крістік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.