如何構建無法訪問的Mailto:URL

了解JavaScript的幫助

正確編碼mailto: URL有點麻煩。 當需要包含主題行,默認消息或其他元素時,尤其如此。 您必須使用十六進制代碼,代表按照RFC 1738-統一資源定位符(URL)標準編碼的ASCII字符,而不是簡單的單詞。 但是,您不必記住或構建這些十六進製表示,儘管:JavaScript可以為您做到這一點。

JavaScript encodeURIComponent()函數

JavaScript encodeURIComponent()函數將它作為參數傳遞的任何字符串進行編碼並將其返回以供使用。 例如, encodeURIComponent(“Doc,do da Dance!”)會生成Doc%2C%20do%20da%20Dance!

是的,這模糊的。 如果你手工做這個密碼學,你可能會犯一個錯誤 - 但JavaScript不會。 要使用encodeURIComponent()來簡化mailto URL的組合,只需使用encodeURIComponent()函數替換URL中任何出現的字符串,該函數將字符串視為參數。

例如,假設您要創建一個mailto: URL,它向recipient@example.com發起消息,主題為“什麼時候什麼時候?”(如果“現在”在這裡)。“ 該URL將如下所示:

的mailto:?recipient@example.com受試者= <主題>

主題是字符串,“什麼時候,現在什麼時候?(如果”現在“在這裡)。” 作為encodeURIComponent()的參數的字符串將產生以下內容:

encodeURIComponent(“什麼時候,現在什麼時候?(如果\”now \“在這裡)”)

這個函數調用的結果是:

當%2C%20when%圖20是%20now%3F%20(如果%20%22now%22%圖20是%20here)

使用e ncodeURIComponent()使用Mailto:URL

要在mailto URL中使用encodeURIComponent() ,請在JavaScript函數document.write()中編寫整個鏈接(從“ ,將任何文本寫入該文件,就像我們在HTML源代碼中輸入它一樣。

例如: