18 ответов:
вы должны использовать двойные кавычки для отображения специальных символов, таких как \n \t и т. д... в окне предупреждения js например в php-скрипт:
$string = 'Hello everybody \n this is an alert box'; echo "<script>alert(\"$string\")</script>";но вторая возможная проблема возникает, когда вы хотите отобразить строку, указанную в двойных кавычках.
посмотреть текст ссылки
если строка заключена в двойные кавычки ("), PHP будет интерпретировать более управляющих последовательностей для специальных символов
escape-последовательности \N и преобразуется в ASCII 0x0A Экранированный символ, и этот символ не отображается в окне предупреждения. Решение состоит в том, чтобы избежать этой специальной последовательности:
$s = "Hello everybody \n this is an alert box"; echo "<script>alert(\"$string\")</script>";Если вы не знаете как строка заключена необходимо преобразовать специальные символы в их escape-последовательностями
$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>";
список специальных кодов символов в JavaScript:
Code Outputs \' single quote \" double quote \ backslash \n new line \r carriage return \t tab \b backspace \f form feed
когда вы хотите написать в javascript предупреждение из переменной php, вы должны добавить другой "\" перед "\n". Вместо этого всплывающее предупреждение не работает.
ex:
PHP : $text = "Example Text : \n" $text2 = "Example Text : \n" JS: window.alert('<?php echo $text; ?>'); // not working window.alert('<?php echo $text2; ?>'); // is working
работает с
\nно если скрипт находится в теге java, вы должны написать\\n<script type="text/javascript">alert('text\ntext');</script>или
<h:commandButton action="#{XXXXXXX.xxxxxxxxxx}" value="XXXXXXXX" onclick="alert('text\\ntext');" />
alert('The transaction has been approved.\nThank you');просто добавьте символ новой строки \n.
alert('The transaction has been approved.\nThank you'); // ^^
на всякий случай, если это кому-то поможет, при выполнении этого из кода C# мне пришлось использовать двойной escape-символ или я получил ошибку JavaScript "unterminated string constant":
ScriptManager.RegisterStartupScript(this, this.GetType(), "scriptName", "alert(\"Line 1.\n\nLine 2.\");", true);
Спасибо за подсказки. Использование знака " + " - это единственный способ заставить его работать. Это последняя строка функции, которая добавляет несколько цифр. Я просто изучаю JavaScript сам:
alert("Line1: The sum is " + sum + "\n" + "Line 2");
\nне будет работать, если вы находитесь внутри кода java, хотя:<% System.out.print("<script>alert('Some \n text')</script>"); %>Я знаю, что это не ответ, просто думал, что это важно.
используйте символ новой строки javascript вместо '\n'.. например: "Hello\nWorld" используйте "Hello\x0AWorld" Он отлично работает!!
Я видел, что у некоторых людей были проблемы с этим в MVC, так что... простой способ передать '\n ' с помощью модели, а в моем случае даже с помощью переведенного текста, заключается в использовании HTML.Raw для вставки текста. Это исправило все для меня. В коде ниже, Модель.Предупреждение может содержать новые строки, например "Hello\nWorld"...
alert("@Html.Raw(Model.Alert)");
я использовал: "\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
новый символ строки в javascript может быть достигнут с помощью
\nЭто можно сделать с помощью
alert("first line \n second line \n third line");выход :
первая строка
вторая строка
третья строка
здесь jsfiddle готовились к тому же.
Comments