2013-03-27 35 views
-1

我創建了一個具有mailto鏈接的html頁面。電子郵件的主體已經轉義了字符(\',\「,\ n,\ r),其中沒有一個可以被Yahoo Mail識別(當yahoo郵件設置爲我的默認電子郵件時)mailto鏈接解析拷貝沒有進行回車的主體返回(\ r)或新行(\ n),並且當它到達單個(\')或雙引號(\)時,它將停止解析副本。我在互聯網上沒有遇到這個問題的任何修復。如果有人遇到這個問題,並有一個修復它將不勝感激。如何使用mailto與轉義字符鏈接不被yahoo郵件識別?

回答

0

mailto-link是一個URI,因此對其進行編碼。我認爲每個value的正確功能是encodeURIComponent

所以:

var link = "mailto:[email protected]?subject=" 
    + encodeURIComponent(subject) + "&body=" 
    + encodeURIComponent(body) 
+0

感謝您的答覆弗裏茨。 encodeURIComponent()不會處理所有的副本,但是當我使用encodeURI()時,它會編碼除單引號以外的所有內容,但不會處理回車符(\ r)或新行(\ n)。 – user2216811 2013-03-27 21:24:57

+0

'var uri =「hello \'\」\ n \ r「; document.write(encodeURI(uri));' yeilds 'hello'%22%0A%0D' – user2216811 2013-03-27 21:34:23

+0

對我來說看起來很好。記住HTML也會刪除空格,'document.write'不會給你一個精確的字符串表示,使用'console.log'。 – Halcyon 2013-03-28 02:01:50