如何构建无法访问的Mailto:URL

了解JavaScript的帮助

正确编码mailto: URL有点麻烦。 当需要包含主题行,默认消息或其他元素时,尤其如此。 您必须使用十六进制代码,代表按照RFC 1738-统一资源定位符(URL)标准编码的ASCII字符,而不是简单的单词。 但是,您不必记住或构建这些十六进制表示,尽管:JavaScript可以为您做到这一点。

JavaScript encodeURIComponent()函数

JavaScript encodeURIComponent()函数将它作为参数传递的任何字符串进行编码并将其返回以供使用。 例如, encodeURIComponent(“Doc,do da Dance!”)会生成Doc%2C%20do%20da%20Dance!

是的,这模糊的。 如果你手工做这个密码学,你可能会犯一个错误 - 但JavaScript不会。 要使用encodeURIComponent()来简化mailto URL的组合,只需使用encodeURIComponent()函数替换URL中任何出现的字符串,该函数将字符串视为参数。

例如,假设您要创建一个mailto: URL,它向recipient@example.com发起消息,主题为“什么时候什么时候?”(如果“现在”在这里)。“ 该URL将如下所示:

的mailto:?recipient@example.com受试者= <主题>

主题是字符串,“什么时候,现在什么时候?(如果”现在“在这里)。” 作为encodeURIComponent()的参数的字符串将产生以下内容:

encodeURIComponent(“什么时候,现在什么时候?(如果\”now \“在这里)”)

这个函数调用的结果是:

当%2C%20when%图20是%20now%3F%20(如果%20%22now%22%图20是%20here)

使用e ncodeURIComponent()使用Mailto:URL

要在mailto URL中使用encodeURIComponent() ,请在JavaScript函数document.write()中编写整个链接(从“ ,将任何文本写入该文件,就像我们在HTML源代码中输入它一样。

例如: