環境
Mac
Chrome
Macの標準メールクライアント
(Windowsでも同じ症例報告あり)
window.openでmailtoをひらくと
.js
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も絶対更新される。
.js
const mailtoUrl = 'mailto:a@gmail.com?subject=おはよう&body=今日もいい天気だね'
location.href = mailtoUrl;
最後に
mailtoとwindow.open周りは地雷が多いので気をつけよう。
というかmailtoは使うのやめよう。