繁体   English   中英

为什么mailto正文无法将对象文字识别为url的一部分?

[英]Why mailto body does not recognize object literal as part of the url?

我有一个对象字面量

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"}";

当显示电子邮件客户端视图时,只有'='之前的部分被包装为超链接。

呈现电子邮件的应用程序只是不考虑{作为URL的一部分,您可以尝试对其进行编码。 它看起来不会很漂亮。
就像是

 window.location = 'mailto:someone@example.com?subject=subject&body=' + encodeURIComponent('http://example.com?parameter=' + encodeURIComponent('{"test":"test"}')); 

这实际上与URL上可接受的字符有关。 您应在此处检查以下答案: URL中允许的字符

因此,如果将“”更改为“”,则您的链接将起作用:

window.location = "mailto:someone@example.com?subject=subject&body=http://example.com?parameter={'test':'test'}";

查看此小提琴以替换引号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM