Поддержка протокола mailto

Рейтинг: 4Ответов: 1Опубликовано: 23.08.2023

Описание

Добавил на странице кнопку "поддержка": нажимаешь — открывает письмо адресованный мне...
Функционал простой, использую протокол mailto:

buttonShare.addEventListener(`click`, (event) => {
    const addressee = `eccs0103@gmail.com`;
    const subject = `Subject`;
    const message = `Message`;
    location.href = `mailto:${addressee}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(message)}`;
});

Проблема

Так вот при наличии почтового клиента браузер открывает его, но при его отсутствии не происходит ничего.

Вопрос

Неловко получается, когда пользователь нажимает на кнопку и ничего не происходит. Как могу я понять — открылась ли почтовый клиент или нет, чтобы хотя бы сообщение соответствующее показать.


Дополнительно 1

Посмотрел множество сайтов. Тот же SO на английском. Конкретного ответа нигде нет. Может тут найдется.

Дополнительно 2

Взгляните как все это выглядит.

Ответы

▲ 0

Потому что такие ссылки надо помещать не в адресную строку, а в ссылки:

var subject = "Subject"
var message = "Message"

var a = document.createElement('a')
a.href = `mailto:eccs0103@gmail.com?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(message)}`
document.body.appendChild(a)
a.click()

Впрочем, не уверен, что параметры работают...

PS: Без сниппета потому что в нём всё равно работать не будет из-за настроек безопасности айфрейма.