我有一個C#ASP.NET應用程序,它爲某些用戶配置文件信息創建值的JavaScript數組。客戶端,我使用jQuery/JavaScript來讀取數組並生成一個mailto鏈接。某些字段可能包含特殊字符,例如' & =/\ "
。向mailto正文傳遞特殊字符JavaScript
這裏的C#代碼:
private String generateElementsArray(){
StringBuilder sb = new StringBuilder();
sb.Append("var currentElements = { currentUserName: '");
sb.Append(currentUserName);
sb.Append("', currentUserEmail: '");
sb.Append(currentUserEmail);
sb.Append("', currentSite: '");
sb.Append(currentSite);
sb.Append("', currentTitle: '");
sb.Append(currentTitle);
sb.Append("'}");
return sb.ToString();
}
我寫上面的方法的頁面,產生這個JavaScript的價值:
3210然後我生成使用這段JavaScript代碼的電子郵件鏈接,將錨標籤附加到頁面上的元素上:
function generateEmailTo(){
var body = currentElements.currentUserName + ' has shared a page with you on the intranet.%0A%0APage Title: %22' +
currentElements.currentTitle.replace("&","and") + '%22%0A' + $(location).attr('href').replace('#','');
var subject = currentElements.currentUserName + ' has shared a page with you on the intranet';
var mailto = 'mailto: ?body=' + body + '&subject=' + subject;
var anchor = '<a href="' + mailto + '"></a>';
$("#email-placeholder").wrap(anchor);
}
....
<img id="email-placeholder" title="Send this page to a friend." src="<%= baseUrl %>/SiteAssets/media/icons/email-icon.gif"/>
對於mailto正文文本,我注意到它只需要一小部分編碼字符,如%22
用於雙引號,%0A
用於換行符。如何將特殊字符(如單引號,&符等等)傳遞給mailto正文文本並保持JavaScript快樂?
可能的複製TOR [#987199郵寄地址,特殊字符] [1] [1]:http://stackoverflow.com/questions/987199/mailto-special-characters – 2011-11-07 08:29:07