Safari(iOS 10.2)を使用していて、mailtoリンクをクリックすると、次のメッセージとともに確認プロンプトが表示されます。
「このWebサイトは、メールの自動作成がブロックされています。」無視/許可
私は自分のサイトでこれを取り除きたいのですが、どうすればいいのかわかりません。これは、Safariを使用して再現できます。たとえば、メールアイコンをクリックすると、BBC記事に表示されます。
私のウェブ調査は私にこれらのリンクをもたらしました:
https://discussions.Apple.com/thread/7763735
WillieFromColo 2017年1月11日午前8時25分、ラスGへの返信
Safariに関する問題と「このWebサイトはメールの自動作成がブロックされています。」
Googleでの私の調査によると、このエラータイプのメッセージは、AppleのiOS 10.2へのアップデートと同時に発生したと思われるSafariへのアップデートにより、11月頃に発生し始めました。今日(1/11/17)の時点で、これはiPadおよびおそらくiPhone向けのiOSの最新バージョンでもあります。
[...]
そして
https://developer.Apple.com/safari/technology-preview/release-notes/#r15
リリース15URL処理
Tel:およびmailto:リンクへのナビゲーションでは、ユーザージェスチャーが必要になりました。ユーザージェスチャーのないナビゲーションでは確認プロンプトが表示されます
つまり、Safariの「機能」のようです。誰かがこのプロンプトを防ぐ方法を知っていますか?
さまざまなサードパーティのJavaScriptライブラリがa
タグのクリックをインターセプトして、サーバーにデータを送信する際にナビゲーションが短時間行われないようにします。通常、これらはプログラムによってwindow.location.replace
を介してナビゲーションをトリガーします。
Safariの変更により、mailto/telリンクがこの方法でトリガーされると警告が表示されます。
そこにはwas相互作用がありますが、それは通常preventDefault
で停止され、Safariは気にしません。
この問題の原因となっているライブラリを使用している場合は、作成者に連絡して、mailto/telリンクでpreventDefault
をスキップするようにライブラリを更新できるかどうかを確認してください。
最初に触れなかったのは、outページのJavaScript部分からmailtoを呼び出したことです。 HTMLタグに基づくmailto(toおよびsubjectを含む)に変更することで問題を解決しようとしましたが、今ではそのダイアローグなしで何とか機能します。だから私はこの問題は自分で解決したと思いますが、理由を説明するヒントがあります。そのため、今のところ、私はこの答えを解決策としてフラグを立てていません。
同様の問題が発生し、Googleタグマネージャーを介してトリガーされた問題であることが判明しました。
具体的には、mailto:
プレフィックスを含むすべてのhref
要素で(タグマネージャーで)イベントをトリガーしていました。アンカータグ内のネストされた<span>
要素をクリックしてトリガーされるようにイベントを変更しました。
これにより、タグマネージャーでのイベントの追跡と、問題のユーザープロンプトの削除の両方が可能になりました。例えば。
<a href="mailto:[email protected]"><span>link text</span></a>
そのリンクを新しいウィンドウで開くためにwindow.open(...)
を使用したため、使用のために起こりました。
Safari:facepalm:でのみwindow.location.href = ...
に置き換えられました。
Googleタグマネージャーでmailto-Linksを追跡するときにこの問題が発生しました。
私はdomを変更せずに解決策を見つけました。
トリガータイプ「クリック-リンクのみ」をオプション「タグを待つ」でアクティブ化し、「最大待機時間」を2000ミリ秒にしました。
このオプションを無効にした後、メッセージは再び表示されませんでした。別の解決策は、「クリック-すべての要素」を使用することです(これは常に機能します)。