jquery用于mailto链接的编码字符串

时间:2018-04-26 21:02:42

标签: jquery

我有这样的变量:

var htmlBody = "<table border = '1' cellspacing='0' align = 'center'><tr><th>Job #</th><th>Task</th><th>Date</th></tr></table>”;

我将用于生成mailto链接:

window.location = "mailto:?subject=Schedule&body=" + htmlBody;

我的问题是,为此可以在我的字符串中编码html吗?所以我在电子邮件正文中没有html标记。

谢谢,

3 个答案:

答案 0 :(得分:0)

您需要使用encodeURI https://www.w3schools.com/jsref/jsref_encodeURI.asp

示例:

var encoded=encodeURIComponent("<span>Hello, im <b>html</b></span>.");

结果是

"%3Cspan%3EHello%2C%20im%20%3Cb%3Ehtml%3C%2Fb%3E%3C%2Fspan%3E."

然后用它来构建你的查询字符串。

答案 1 :(得分:0)

你应该使用encodeURIComponent&amp; replace用于编码htmlBodyencodeURIComponent函数对以下字符进行编码:, / ? : @ & = + $ #。编码',使用替换

&#13;
&#13;
var htmlBody = "<table border = '1' cellspacing='0' align = 'center'><tr><th>Job #</th><th>Task</th><th>Date</th></tr></table>";
var encodedURL = encodeURIComponent("mailto:?subject=Schedule&body=" + htmlBody).replace(/'/g, "%27");
console.log(encodedURL);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

那是不可能的。您只能将电子邮件的body设置为纯文本。

mailto类型的URL是定义良好的URI架构。它们在RFC 2368中定义。在第2部分中,它表示body字段必须为text/plain

(虽然,可能值得注意的是,某些邮件客户端可能会扩展mailto URL架构?也就是说,也许Outlook或Gmail会支持它,而其他人则不会。)