Возможно, связано с Как открыть почтовую ссылку в Chrome с помощью Window.open без создания новой вкладки?
Привет всем. У меня есть страница с формой, на которой я установил window.onbeforeunload confirm, чтобы остановить перемещение людей и потерять их изменения случайно:
window.onbeforeunload = function(){
if(changed)
return "You have unsaved changes. Do you really want to leave this page without saving?";
};
где changed
- переменная i, установленная в true, когда пользователь вносит какие-либо изменения. Это все прекрасно. Тем не менее, я также добавил некоторые ссылки mailto на страницу, например:
<a class="button button-alt" href="mailto:[email protected]">Report a problem</a>
Несмотря на то, что mailto не перемещается в сторону от страницы (он открывает почтовое приложение для пользователей по умолчанию), он по-прежнему запускает событие onbeforeunload, запрашивая окно подтверждения, что раздражает. Я могу обойти его, установив target="_blank"
в ссылке, но затем пользователь останется сидящим на пустой вкладке.
Могу ли я установить ссылку mailto, чтобы не запускать событие onbeforeunload? Я подумал об ужасающем хакерском способе сделать это, добавив еще одну временную переменную javascript, которая заставляет подтверждение onbeforeunload не запускаться, но кажется, что это грязно. Я сделаю это в любом случае, пока жду ответа, но у кого-нибудь есть лучшее решение?
спасибо, max