0

尝试使用 javascript 创建一个简单的“mailto”函数。我只需要能够发送一些链接(例如:请参阅这篇文章 bla bla)。

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

当我尝试邮寄链接时出现问题(下面的示例代码)

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

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

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

提前致谢 :)

4

3 回答 3

0

当您单击链接时,该链接会被解码 - 这很正常。由于您在 mailto 链接中有一个 http 链接,因此它应该被编码两次。

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

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

< http://www.example.com/url带空格>

但这并非万无一失。电子邮件很脆弱,您无法通过 mailto 链接很好地控制内容。尝试降低 url 的复杂性可能会更好——也许通过提供或使用 url-shortener 服务。任何超过 74 个字符的 url 都可能被某些电子邮件客户端破坏。

于 2013-09-13T19:39:05.893 回答
0

您应该使用encodeURIComponent而不是encodeURI.

更多信息在这里

于 2019-03-14T17:39:20.903 回答
-1

该站点帮助我解决了有关 mailto 链接的任何问题:

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

可能这不是最好的方法,但它总是适用于我认识的每个浏览器。它还实现了非常酷的算法来格式化内容,以便一切正常。只需尝试一下并通过引用部分代码来玩弄一下代码,您就会很快了解那里到底发生了什么以及如何根据您的意愿修改它。虽然有点晚了,但我希望这个可以帮助任何人检查这个问题。

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

于 2013-11-19T14:58:46.923 回答