繁体   English   中英

链接在mailto正文中被删减

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM