【问题标题】:Add a link to a local file to email using mailto Javascript使用 mailto Javascript 将本地文件的链接添加到电子邮件
【发布时间】:2014-08-27 09:13:26
【问题描述】:

我需要通过电子邮件将数据从一个 html 表单传递到另一个。我在插入指向本地文件的链接时遇到了一些问题。 Outlook 客户端打开后,链接格式不正确,不是超链接。这是我表单中的 send() 函数

function send() 
{
    var name = document.getElementById('Fname').value;
    var company = document.getElementById('company').value;
    var email = document.getElementById('email').value;
    var str = "Link to IT Web Report"
    var linkToReport = str.link('S:\IT\Applications\Aleds Work\Guest WIFI access\ITTaskWebReport.html?name='+name+'&company='+company+'&email='+email);
    var link = 'mailto:FHCNetAlert@fhc.co.uk?subject= Guest WIFI request'
             +'&body=A request for guest WIFI access was made. Details:- %0D%0A'
             +'%0D%0A Name: '+document.getElementById('Fname').value +
             '%0D%0A Company: '+document.getElementById('company').value +
             '%0D%0A Email: '+document.getElementById('email').value +
             '%0D%0A' +linkToReport;
    window.location.href = link;
}

这是此链接在 Microsoft Outlook 中的显示方式 -

<a href="S:ITApplicationsAleds WorkGuest WIFI accessITTaskWebReport.html?name=Aled Hughes 

如您所见,它的格式不正确,不是链接,并且缺少公司变量和电子邮件变量。有什么帮助吗?

【问题讨论】:

    标签: javascript html forms email outlook


    【解决方案1】:

    要在mailto 链接中传递 URL,您需要对它们进行 URL 编码,并且还需要转义反斜杠。我没有要测试的 Windows 机器,但你想要类似的东西;

    var linkToReport = str.link(encodeURIComponent('S:\\\\IT\Applications\\Aleds Work\\Guest WIFI access\\ITTaskWe...'))
    

    这应该会让你走上正确的道路;)

    您需要像mailto URI's 一样使用encodeURIComponent,类似GET 的参数被解释为电子邮件标头,例如bodycc,因此它会破坏您的URI 中的组件,例如@987654328 @。

    还要注意名字如“O'Mally”的人,即添加更多逻辑来转换单引号,就像MDN page on encodeURIComponent 所说的那样;

    encodeURIComponent 转义除以下字符之外的所有字符: 字母,十进制数字, - _ 。 ! ~ * ' ( )

    【讨论】:

    • 感谢您的帮助。我现在在 URI 中得到反斜杠,但在第一个 & 符号之后什么都没有。有什么建议吗?
    • 嗨,我想我已经破解了。但是现在有一个超链接格式的问题。
    • 那么你可能应该接受这个答案并提出一个新问题;)
    • 是的,现在都已排序。再次感谢您的帮助!
    猜你喜欢
    • 2015-01-10
    • 2012-05-19
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多