我正在使用表单中的值设置电子邮件的正文
firstname = bob
lastname = dole
ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname
window.location.href = 'mailto:myemail@mycompany.com?subject=test
email&body=' + ebody;
Run Code Online (Sandbox Code Playgroud)
如果我做"警报(ebody);" 我在firstname和lastname之间获得了换行符,但是当它打开outlook时,整个ebody字符串在电子邮件正文中没有换行符.
我也试过了.有没有什么东西可以成为一个换行符?
提前致谢
ott*_*ter 43
RFC 2368说mailto正文内容必须是URL编码的,使用%-escaped表单来表示通常在URL中编码的字符.这些字符包括空格和(如2368第5节中明确指出的)CR和LF.
你可以通过写作来做到这一点
ebody = 'First%20Name:%20' + firstname + '%0D%0A' + 'Last%20Name:%20' + lastname;
Run Code Online (Sandbox Code Playgroud)
但是让JavaScript为你逃避会更容易也更好,就像这样:
ebody = 'First Name: ' + firstname + '\r\n' + 'Last Name: ' + lastname;
ebody = encodeURIComponent(ebody);
Run Code Online (Sandbox Code Playgroud)
这不仅可以使你不必识别和查找需要在固定文本中编码的字符的十六进制值,它还将编码firstname
和lastname
变量中的任何傻瓜字符.
你可以使用编码 %0D%0A
来换行.
firstname = 'Aung ';
lastname = 'Kyaw Zaw';
ebody = 'First Name: ' + firstname + '%0D%0A' + 'Last Name: ' + lastname;
window.location.href = 'mailto:myemail@mycompany.com?subject=testemail&body=' + ebody;
Run Code Online (Sandbox Code Playgroud)
http://www.w3schools.com/tags/ref_urlencode.asp