ユーザーの OS/ブラウザが特定の URL スキームを JavaScript (またはその他のもの) を使用してサポートしているかどうかをテストすることは可能ですか?
たとえば、mailto: は、Web メールのみを使用するほとんどのユーザーのコンピューターではセットアップされません。mailto リンクをクリックしようとする試みを何らかの方法でキャッチし、ブラウザのエラー メッセージよりもわかりやすい説明をポップアップ表示することは可能でしょうか?
ユーザーの OS/ブラウザが特定の URL スキームを JavaScript (またはその他のもの) を使用してサポートしているかどうかをテストすることは可能ですか?
たとえば、mailto: は、Web メールのみを使用するほとんどのユーザーのコンピューターではセットアップされません。mailto リンクをクリックしようとする試みを何らかの方法でキャッチし、ブラウザのエラー メッセージよりもわかりやすい説明をポップアップ表示することは可能でしょうか?
一般的なケースでは — 私はそうは思いません。
特定の mailto の場合: — いいえ。
説明する必要がある問題を解決するには、ブラウザーが mailto: をサポートしているかどうかではなく、ユーザーが構成済みの電子メール クライアントを持っているかどうかを知る必要があります。ほとんどのブラウザーは mailto: をサポートしており、ユーザーが構成済みのクライアントを持っていない場合でも、(電子メール クライアントを起動し、ユーザーに構成を求めることによって) 「動作」します。
mailto リンクをクリックしようとする試みを何らかの方法でキャッチし、ブラウザのエラー メッセージよりもわかりやすい説明をポップアップ表示することは可能でしょうか?
ブラウザが mailto: リンクをサポートしているかどうかを判断できるかどうかはわかりません。しかし、ロジックを mailto リンクに添付することに関しては、ページ上のリンクを循環させて、それらのhref
値をテストすることができます。「mailto:」で始まる場合は、クリック時にポップアップを添付できます。
var maillinks = document.getElementsByTagName("a");
var (var i = 0; i < maillinks.length; i++) {
var currentlink = maillinks[i];
if (currentlink.href.substring(0,7) === "mailto:") {
alert("Sorry. These aren't allowed.");
return false;
}
}
この問題に対して私が考えることができる唯一の実際の解決策は、独自の連絡先ページをホストし、ユーザーが送信できる小さなフォームを提供することです。