2017-02-07 21 views
6

При использовании Safari (IOS 10.2) и нажав на почтовую связь подтверждение приглашения отображается со следующим сообщением: «Этот сайт был заблокирован от автоматического составления по электронной почте»Safari mailto: «Этот сайт заблокирован от автоматического создания электронной почты».

Игнорировать/разрешить

Я хотел бы избавиться от этого на своем собственном сайте и не знаю, что делать. Он может быть воспроизведен с помощью Safari, например, в любой статье BBC, щелкнув значок почты.

Screenshot of dialogue on iPad

Мой веб-исследования привели меня к этим ссылкам:

https://discussions.apple.com/thread/7763735

WillieFromColo 11 января, 2017 8:25 AM в ответ на Русь G

Проблемы с Safari и «Этот сайт заблокирован от , автоматически составляя электронное письмо».

Мои исследования, проведенные в Google, показывают, что это сообщение об ошибке было начато , произошедшее примерно в ноябре с обновлением Safari, которое, вероятно, произошло с обновлением Apple до iOS 10.2. На сегодняшний день (1/11/17) - это последняя версия iOS для iPads и, возможно, iPhone.

[...]

и

https://developer.apple.com/safari/technology-preview/release-notes/#r15

Выпуск 15 URL Handling

плаваний к телам: и электронная почта: ссылки в настоящее время требует, чтобы пользователь жест; Навигация без жестов пользователя покажет запрос на подтверждение

Так что это похоже на функцию «Safari» Safari. Кто-нибудь знает, как предотвратить это приглашение?

+1

Согласно вашей последней цитате, используйте жест пользователя. (кнопка для щелчка, что-то прокрутить ...) – Kaiido

+0

У меня есть простой html, ванильный javascript и so what can i do to avoid this annoying alert on Safari –

ответ

4

Различные сторонние библиотеки JavaScript будут перехватывать клики по атрибутам a, чтобы предотвратить кратковременную навигацию при отправке данных на сервер. Как правило, они программно запускают навигацию через window.location.replace.

Изменения в Safari вызывают предупреждение при срабатывании соединений mailto/tel.

было взаимодействие, но это обычно было остановлено preventDefault, а Safari не имеет значения.

Если вы используете библиотеку, вызывающую эту проблему, обратитесь к создателю и посмотрите, могут ли они обновить ее, чтобы пропустить preventDefault по ссылкам mailto/tel.

+1

Our fallback system for reporting errors uses dynamically generated mailto links, and it would seem that not only preventDefault causes this but also changing the href location after the click but before the event triggers causing this behavior. – rovermicrover

+0

In my context, this appears to be caused by HTML not by Javascript. The tag in question looks basically like this: '[email protected] '. –

+1

@ChrisPrince правильно, тег правильный, проблема в том, что прослушиватели событий могут прослушивать клики по этому тегу и изменять результаты, чтобы за href не следовало «взаимодействие с пользователем», а вместо этого с помощью JavaScript, меняющего окно .location после щелчка. – jmc

2

Что я не упоминал вначале, так это то, что мы вызвали mailto из части JavaScript на странице. Теперь мы снова попытались решить проблему, перейдя на HTML-тэг, основанный на mailto (с и на тему), и теперь он как-то работает без этого набора. Итак, я решил, что эта проблема решена для меня, но я открыт для любых подсказок, объясняющих причины. Поэтому к настоящему времени я не отмечаю этот ответ как решение.

0

Случалось для использования, потому что мы использовали window.open(...), чтобы открыть эту ссылку в новом окне.

Заменено на window.location.href = ... только для Safari: facepalm :.