【问题标题】:mailto: problem邮寄:问题
【发布时间】:2009-09-22 02:03:35
【问题描述】:

我正在尝试设置以下mailto:链接:

<a href='mailto:info@example.com?subject=Testing&body=http://www.google.com?foo=1&bar=2'>Send mail</a>

但是第二个参数 (bar) 被截断,因为它被视为 mailto 链接的参数,而不是我放入正文的链接。我试过&amp;amp;,但它做同样的事情,因为它被渲染到链接中。

【问题讨论】:

    标签: html xhtml


    【解决方案1】:

    这样的事情怎么样:

    <a href='mailto:info@example.com?subject=Testing&amp;body=http%3A%2F%2Fwww.google.com%3Ffoo%3D1%26bar%3D2'>Send mail</a>
    

    urlencoding 整个body 字段,以确保没有引起任何问题?

    【讨论】:

    • +1 记得 &-escape 链接中的 & 符号。但是请注意,无论哪种方式,mailto: 链接参数,如“主题”和“正文”都是非标准的,并且与每个邮件程序都不兼容,因此不应依赖。
    【解决方案2】:

    改用“%26”或使用另一个答案中建议的 urluncoding。对于 PHP rawurlencode 效果很好。

    <a href='mailto:info@example.com?subject=Testing&body=http://www.google.com?foo=1%26bar=2'>Send mail</a>
    

    【讨论】:

      【解决方案3】:

      尝试将 body 的值放在引号中,例如:

      'mailto:info@example.com?subject=Testing&body="http://www.google.com?foo=1&bar=2"'
      

      Nvm,结果证明用 %26 代替 & 符号。

      【讨论】:

        【解决方案4】:

        使用 %26 作为 &.. 它是 & 的 html 转义码。

        &lt;a href='mailto:info@example.com?subject=Testing&amp;body=http://www.google.com?foo=1%26bar=2'&gt;Send mail&lt;/a&gt;

        【讨论】:

          猜你喜欢
          • 2011-03-16
          • 1970-01-01
          • 1970-01-01
          • 2015-10-31
          • 2013-09-07
          • 2021-10-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多