2014-08-27 131 views
0

我需要通過電子郵件將數據從一個html表單傳遞到另一個html表單。我有一些問題插入到本地文件的鏈接。 Outlook客戶端打開後,鏈接格式不正確,不是超鏈接。這是我的send()函數從我的形式添加到本地電子郵件的鏈接使用mailto Javascript

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:[email protected]?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 

正如你可以看到,它不是正確的格式,它不是一個鏈接,它缺少公司變量和電子郵件變量。有什麼幫助嗎?

回答

0

要傳遞URL中的mailto鏈接,您需要對它們進行URL編碼,並且您還希望避免反斜槓。我沒有可以手動測試的Windows機器,但是你想要類似的東西;

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

這應該希望你設定在正確的道路上;)

你需要在mailto URI's使用encodeURIComponent如,GET般的參數被解釋爲電子郵件標題,如bodycc,所以它將打破你的URI中的組件,如company

還要注意名字像「O'Mally」的人,即增加更多邏輯來轉換單引號,如MDN page on encodeURIComponent所示;

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

+0

感謝您的幫助。我現在在URI中獲取反斜槓,但在第一個&符號之後沒有任何反斜槓。有什麼建議麼? – user3853001 2014-08-27 10:45:48

+0

已更新的答案。 – jpw 2014-08-27 11:02:58

+0

嗨,我想我已經破解了它。但現在havina超鏈接格式的問題。 – user3853001 2014-08-27 15:03:51

相關問題