我正在使用表单中的值设置电子邮件的正文

  firstname = bob
  lastname = dole

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

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

如果我做一个“警报(正文)”;我得到名字和之间的换行符
姓氏,但是当它打开Outlook时,整个ebody字符串
在电子邮件正文中显示时没有换行符。

我也尝试过\n。有什么可以给线
休息?

提前致谢

最佳答案

RFC 2368说,mailto正文内容必须经过URL编码,对于通常会在URL中编码的字符,请使用%转义形式。这些字符包括空格以及(如2368第5节中明确指出的)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);

这不仅使您不必识别和查找需要在固定文本中编码的字符的十六进制值,还可以对firstnamelastname变量中的任何愚蠢的字符进行编码。

10-06 11:55