サイト持ち用お手軽 SPAM 対策(応用編)

この日記に、M.T さんの→C↓C←C↑Cからのアクセスがあったのでおじゃましたところ、「サイト持ち用お手軽 SPAM 対策」へのリンクがありました。この記事はサークル駿河電力さんのスク水.jpや、雪兎さんの雪花乱舞や、私たんの私たんニュースなどなどで紹介されて割と広まったんですが、今回はその続編として mailto リンクもできちゃう応用編を紹介します。

メールアドレスを記載するとき、

<a href="mailto:hogehoge@example.com">メールはこちら</a>

としておくと、

メールはこちら

てな感じになって、これをクリックするとメーラが開いて閲覧者は嬉しいわけですが、この場合 mailto: の後ろは確実にメールアドレスになってることから、収集スクリプトの格好の餌食になってしまいます。

こんなときは JavaScript を使ってメールアドレスをバラバラにしておきます。こんな感じに。

document.write("<a href=mail" + "to:hogeho" + "ge&#64;exam" + "ple.com>メールはこちら</a>");

こうしておくと、JavaScript がオンになっていればちゃんと mailto リンクになります。JavaScript をオフにしている人向けには例の「span 避け」を使えば OK です。あまり意味ないかも知れませんが、気休めに @ も数値文字参照にしておきましょう。最終的に次のような感じになります。

<script TYPE="text/javascript">
<!--
document.write("<a href=mail" + "to:hogeho" + "ge&#64;exam" + "ple.com>メールはこちら</a>");
//-->
</script>
<noscript>
hogeho<span>ge&#64;exam</span>ple.com
</noscript>

「span 避け」は将来的に対応されてしまう可能性はありますが、JavaScript の方はなかなか対応できないと思われます。それでいてちゃんと mailto リンクにもできるという優れもの。お試しあれ。