LoginSignup
0
0

More than 3 years have passed since last update.

mailtoはwindow.openで開かないほうがよい

Posted at

環境

Mac
Chrome
Macの標準メールクライアント

(Windowsでも同じ症例報告あり)

window.openでmailtoをひらくと

let mailtoUrl = 'mailto:a@gmail.com?subject=おはよう&body=今日もいい天気だね'

// 普通に開く
window.open(mailtoUrl)

mailtoUrl = 'mailto:abcdefghijk@gmail.com?subject=おはよう&body=今日もいい天気だね'

// 宛先がa@gmail.comのまま開かれる
window.open(mailtoUrl)

最初は普通に開けるが
そのあと非同期でデータ取ってきて動的にmailto:を書き換えたりするとTo(宛先)の更新が反映がされない。

解決策

location.hrefを使うとToも絶対更新される。

const mailtoUrl = 'mailto:a@gmail.com?subject=おはよう&body=今日もいい天気だね'

location.href = mailtoUrl;

最後に

mailtoとwindow.open周りは地雷が多いので気をつけよう。
というかmailtoは使うのやめよう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0