簡體   English   中英

使用mailto Javascript將本地文件的鏈接添加到電子郵件中

[英]Add a link to a local file to email using mailto Javascript

我需要通過電子郵件將數據從一種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 

如您所見,它的格式不正確,不是鏈接,並且缺少公司變量和電子郵件變量。 有什么幫助嗎?

要在mailto鏈接中傳遞URL,您需要對其進行URL編碼,並且還希望轉義反斜杠。 我沒有要測試的Windows機器,但是您想要類似的東西;

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

這有望使您走上正確的道路;)

您需要像在mailto URI中一樣使用encodeURIComponent ,類似GET的參數被解釋為電子郵件標頭,例如bodycc ,因此它將破壞URI中像company一樣的組件。

也要當心諸如“ O'Mally”之類的人,即添加更多邏輯以轉換單引號,正如encodeURIComponent上MDN頁面所說;

encodeURIComponent會轉義除以下字符外的所有字符:字母,十進制數字--_。 〜*'()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM