Подтвердить что ты не робот

Javascript добавляет linebreak в mailto body

Я устанавливаю тело сообщения электронной почты, используя значения из формы

  firstname = bob
  lastname = dole

   ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname

  window.location.href = 'mailto:[email protected]?subject=test
  email&body=' + ebody;

Если я делаю "alert (ebody)"; Я получаю разлад строки между firstname & lastname, однако, когда он открывает внешний вид, вся строка пользователя появляется без прерывания строки в элементе электронной почты.

Я тоже попробовал \n. есть ли что-то, что может дать линия ломать?

Заранее спасибо

4b9b3361

Ответ 1

RFC 2368 говорит, что содержимое содержимого mailto должно быть закодировано URL-адресом, используя форму% -escaped для символов, которые обычно кодируются в URL. Эти символы включают пробелы и (как явно вызывается в разделе 5 из 2368) CR и LF.

Вы можете сделать это, написав

ebody = 'First%20Name:%20' + firstname + '%0D%0A' + 'Last%20Name:%20' + lastname;

но проще и лучше иметь JavaScript для вас, как это:

ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname;
ebody = encodeURIComponent(ebody);

Это не только избавит вас от необходимости определять и искать шестнадцатеричные значения символов, которые должны быть закодированы в вашем фиксированном тексте, а также кодировать любые тупиковые символы в переменных firstname и lastname.

Ответ 2

Вы можете просто использовать кодировку %0D%0A для разрывов строк.

firstname = 'Aung ';
lastname = 'Kyaw Zaw';

ebody = 'First Name: ' + firstname + '%0D%0A' + 'Last Name: ' + lastname;

window.location.href = 'mailto:[email protected]?subject=testemail&body=' + ebody;

http://www.w3schools.com/tags/ref_urlencode.asp

Ответ 3

Я бы ожидал, что Outlook попытается вывести это как html/rich text, так что в этом случае вам понадобится что-то вроде следующего (включая urlencoded br tag):

 firstname = bob
  lastname = dole

   ebody = 'First Name: ' + firstname + '%3C%2Fbr%3E' + 'Last Name: ' + lastname

  window.location.href = 'mailto:[email protected]?subject=test
  email&body=' + ebody;