doran7
Новичок
Столкнулся с этой заморочкой, решил разобраться. Всего-то надо чтобы, допустим, js alert выводил две или больше строк в своем окне. В инете стока понаписано... в пору отдельную статью с расследованием проводить. Вообще в JS, в официальном описании, сказано что для перевода строки в строковом литерале JS надо использовать управляющую последовательность \n. Оно, собственно, и использую.
Но народ говорит всякое. Например. что в Windows для перевода строки используется \r\n, а в Unix \n.
И вообще, никаких \r или \n не надо, а достаточно вообще простого \ . И еще, если js-скрипт генерируется через php-скрипт то \n или \r\n , например, надо экранировать так: \\n или \\r\\n.
Я набросал простенький тест, файл test.php:
Нормальную структуру html-документа сделал для полной корректности. Перенос строки в вышеуказанном тесте у меня работает и с \n, и с \\n, и с \r и с \\r и с \r\n и с \\r\\n. Не работает с \ и с \\.
Среда - Денвер под winXP.
Прошу корифеев подсказать, как вообще, правильно.
Но народ говорит всякое. Например. что в Windows для перевода строки используется \r\n, а в Unix \n.
И вообще, никаких \r или \n не надо, а достаточно вообще простого \ . И еще, если js-скрипт генерируется через php-скрипт то \n или \r\n , например, надо экранировать так: \\n или \\r\\n.
Я набросал простенький тест, файл test.php:
Код:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Трафарет HTML5</title>
</head>
<body>
<?php
$out1='<h2>Тест переноса строки в строковом литерале JS</h2>';
$out1.='<p><input type="button" value="Go" onclick="ftest1();"/>';
$out1.='<script>function ftest1(){alert("Первая строка\\r\\nВторая строка");}</script>';
echo $out1;
?>
</body>
</html>
Среда - Денвер под winXP.
Прошу корифеев подсказать, как вообще, правильно.