HTML中mailto链接body换行失效,寻求有效替代解决方案
解决mailto链接body部分换行不生效的问题
mailto属于URL协议,链接里的特殊字符必须经过URL编码才能被邮件客户端正确识别,直接用换行符是无效的,你可以用以下两种方法解决:
使用URL编码的换行符:
- 对应Windows系统的回车+换行,用
%0D%0A - 对应Unix/Linux/macOS的仅换行,用
%0A
大部分主流邮件客户端对这两种编码都兼容,修改后的代码示例:
<a href="MailTo:name@domainname?subject=Reaction&body=First row%0D%0ASecond row">Your reaction</a><br>- 对应Windows系统的回车+换行,用
动态生成链接(如果用JavaScript):
把body内容用encodeURIComponent()方法编码,它会自动处理所有特殊字符包括换行,示例:const bodyText = `First row Second row`; const mailtoUrl = `MailTo:name@domainname?subject=Reaction&body=${encodeURIComponent(bodyText)}`; document.querySelector('a').href = mailtoUrl;
内容的提问来源于stack exchange,提问作者Aventurijn
相关产品推荐
相关产品推荐

