【问题标题】:Line break doesn't show correctly when used in a mailto link在 mailto 链接中使用时,换行符无法正确显示
【发布时间】:2020-11-10 21:37:39
【问题描述】:

ts

 send(): void {
    const body: string = `First Name: ${this.form.value.firstName}` + '\n' + `Last Name:${this.form.value.lastName}`;
    console.log('body', body);
    const url: string = `mailto:me@y.com?Subject=Sell My House&body=${body}`;
    window.open(url);
  }

Console.log 正确显示:

body First Name: sampath
Last Name:lokuge

但是为什么电子邮件客户端没有正确显示它

【问题讨论】:

  • 尝试\n\r 而不是仅仅\n。解释是here
  • @barinbritva 没有区别。结果相同。 :(
  • 这里可能还有另一件事。可能为 Windows Mail 客户端指定内容类型标头很重要。但是,这只是我的猜测
  • 这能回答你的问题吗? Insert a line break in mailto body

标签: javascript html typescript ionic-framework html-email


【解决方案1】:

OP 的反馈

我是这样做的:即%0D%0A

const body: string = `First Name: ${this.form.value.firstName}` + '%0D%0A' + `Last Name: ${this.form.value.lastName}`

原创

这是 HTML 和空格的正常行为。所有的空白都被压缩成一个,并被视为一个空格。
https://developer.mozilla.org/en-US/docs/Glossary/Whitespace

css white-space 属性可以修复white-space: pre-line 可能是您想要的,但还有其他选项 https://developer.mozilla.org/en-US/docs/Web/CSS/white-space

现在,无论您是否接受电子邮件客户端都会尊重您需要测试的 css white-space 属性。否则,您可能需要添加 HTML 换行符 <br> 或将每一行包装在 <div><p>

【讨论】:

  • 没有。我需要这样做是使用Typescript/Javascript。即没有CSS
  • 刚刚意识到您正在创建一个 mailto 链接并为用户单击该链接,因此这并不能完全回答问题。
  • 你可以看到我需要在那个页面上添加很多 Typescript 的东西。
  • 我再次评论了您的原始问题,您的问题是特定于使用mailto 链接打开电子邮件,而不是真正的html电子邮件本身。
猜你喜欢
  • 2018-10-13
  • 1970-01-01
  • 2020-07-25
  • 2021-01-10
  • 1970-01-01
  • 2016-04-15
  • 2020-12-03
  • 1970-01-01
  • 2021-01-19
相关资源
最近更新 更多