繁体   English   中英

Javascript mailto字符串丢失“ encodeURI”编码

[英]Javascript mailto string loses 'encodeURI' encoding

尝试使用javascript创建一个简单的“ mailto”功能。 我只需要能够发送一些链接(例如:参见本文bla bla)。

我需要发送的一些链接包括空格,丹麦字符。 所以我一直在使用encodeURI()函数。

当我尝试通过邮件发送链接时出现问题(下面的示例代码)

       var _encodedPath = encodeURI(path);
       var _tempString = "mailto:someemail@somewhere.dk?subject=Shared%20from%20some%20page&body=" + _encodedPath;

如果我将_tempString输出到控制台,则会得到正确的编码字符串。 但是,当在“ mailto”中使用相同的字符串时,该字符串将丢失其编码,并返回到以前的状态。

关于这为什么的任何线索?

提前致谢 :)

当您单击链接时,该链接将被解码-这是正常的。 由于您在mailto链接中有一个http链接,因此应该对其进行两次编码。

电子邮件客户端会尽力使看起来像链接的内容可点击。 他们通常以某种随意和不可预测的方式决定链接的结束位置。

在电子邮件中,保持链接连续的最佳方法是将其用尖括号括起来,如下所示:

< http://www.example.com/带有空格的网址 >

但这不是万无一失的。 电子邮件易碎,您无法通过mailto链接充分控制内容。 尝试减少url的复杂性可能更好一些-也许通过提供或利用url缩短服务即可。 某些网址长度超过74个左右的字符可能会被某些电子邮件客户端破坏。

您应该使用encodeURIComponent而不是encodeURI

更多信息在这里

这个站点通过mailto链接帮助我解决了任何麻烦:

http://www.1ngo.de/web/formular.html

也许这不是最好的方法,但是它始终可以与我所知道的每个浏览器一起使用。 它还具有很酷的算法来格式化内容,因此一切都应该没问题。 只需尝试一下并通过引用部分代码来尝试一些代码,您将很快了解那里到底发生了什么以及如何根据自己的意愿进行修改。 我想这已经有点晚了,我希望这个可以帮助任何人检查这个问题。

尽管它是德语的,您只需要复制那里显示的代码并运行它并进行试验。

暂无
暂无

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

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