【问题标题】:How come using mailto link with escaped characters is not recognized by yahoo mail?为什么雅虎邮件无法识别使用带有转义字符的 mailto 链接?
【发布时间】:2013-03-27 18:01:13
【问题描述】:

我创建了一个带有 mailto 链接的 html 页面。电子邮件的正文包含转义字符(\'、\"、\n、\r),Yahoo Mail 似乎都无法识别这些字符(当 yahoo 邮件设置为我的默认电子邮件时)。mailto 链接解析副本正文没有执行回车 (\r) 或换行 (\n),当它到达单引号 (\') 或双引号 (\") 时,它会停止解析副本。我还没有在互联网上遇到任何解决此问题的方法。如果有人遇到此问题并有解决方法,将不胜感激。

【问题讨论】:

    标签: javascript yahoo mailto html-escape-characters yahoo-mail


    【解决方案1】:

    mailto-link 是一个 URI,因此对其进行相应的编码。我认为每个value 使用的正确函数是encodeURIComponent

    所以:

    var link = "mailto:john@doe.com?subject="
        + encodeURIComponent(subject) + "&body="
        + encodeURIComponent(body)
    

    【讨论】:

    • 感谢您的回复弗里茨。 encodeURIComponent() 不会处理所有副本,但是当我使用 encodeURI() 时,它会编码除单引号之外的所有内容,但不会处理回车符 (\r) 或换行符 (\n)。
    • var uri="hello\'\"\n\r"; document.write(encodeURI(uri)); yields hello'%22%0A%0D
    • 这对我来说很好。请记住,HTML 也会删除空格。 document.write 不会为您提供字符串的准确表示。使用console.log
    猜你喜欢
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多