[英]Link gets cut of within a body of mailto
我有一个JavaScript代码,该代码生成带有正文链接的电子邮件。
一些链接在链接内有空格,因此该链接被切除。
我尝试用asacii代码替换空格,但是没有用。
var lineBreak = "%0D%0A";
function GetMailToInfo(attachment, body) {
attachment = attachment ? attachment.replace(" ","%0D%0A") + lineBreak + lineBreak : "";
body += attachment + signature;
window.location.href = "mailto:" + emailTo + "?subject=" + subject() + "&body=" + body;
}
有什么解决办法的想法吗?
您的问题很可能是因为String.replace
仅在将string
用作第一个参数时才替换第一个匹配项。 请参阅此MDN文档 。
我建议要么循环:
while (attachment.indexOf(" ") >= 0) {
attachment = attachment.replace(" ", "%0A%0D");
}
或者使用RegEx
执行基于模式的替换。
但是,Quentin的解决方案是正确编码字符串以确保URI使用安全的正确方法。 对于更一般的情况,我的答案可能不是URI字符串。
使用encodeURIComponent
可以正确转义URL中的特殊字符:
window.location.href =
"mailto:" + encodeURIComponent(emailTo) +
"?subject=" + encodeURIComponent(subject()) +
"&body=" + encodeURIComponent(body);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.