我有一个对象文字
var object = {
test: "test";
}
我在此对象上调用JSON.stringify并将其附加到查询字符串
http://example.com?parameter={"test":"test"}
但是,当我将此查询字符串附加到mailto正文时,只有这部分
http://example.com?parameter=
被包裹为超链接,而其余部分显示为纯文本。
我做的是这个:
window.location = "mailto:someone@example.com?subject=subject&body=http://example.com?parameter={"test":"test"}";
当电子邮件客户端视图显示时,只有' ='之前的部分。被包裹成超链接。
答案 0 :(得分:3)
呈现电子邮件的应用程序不会将{
视为网址的一部分,您可以尝试对其进行编码。它看起来不会很漂亮。
像
window.location = 'mailto:someone@example.com?subject=subject&body=' + encodeURIComponent('http://example.com?parameter=' + encodeURIComponent('{"test":"test"}'));
答案 1 :(得分:2)
这实际上与URL上接受的字符有关。你应该在这里查看这个答案:Characters allowed in a URL
因此,如果您更改此链接,您的链接将会正常工作。对此':
window.location = "mailto:someone@example.com?subject=subject&body=http://example.com?parameter={'test':'test'}";
请查看此Fiddle以替换引号