WebTecNote

[js]メールアドレスを自動収集されないように表示する

放置してたメールボックスを受信してみたら1000通もスパムが溜まってた。さすがに驚いた。

スパマーはWebサイトに記載されてるメアドをgoogleのクローラのようなbotで拾っていくとか。
直接メアド書くのは最早時代遅れとなりつつあり、お手軽な方法としてはエンティティ化が流行ってる様子。
でも唐突にエンコード文字があると逆に怪しいと思うんだけどどうでしょう。
個人的にはあのクソ長い文字の羅列はあまり好きじゃない。ソフトが勝手にデコードしたりするし。

そこでmailtoリンクつきのメールアドレスをスタイリッシュにjavascriptで表示するサンプルを。
前にmootoolsで書いたけど、今回は普通のjavascriptで。

document.writeではなく、aタグ作って挿入すればソースにはテキストが出ない。
気になるのは外部jsも自動収集されるのか、ということでしょうか。

IDはページに1つしか使えない代わりに割と簡単。

<span id="mt"></span>
window.onload = function() {
 var mLink = document.createElement('a');
 mLink.setAttribute("href", "mailto:hoge@sample.com");
 mLink.innerHTML ="hoge@sample.com";
 var mSpan = document.getElementById("mt");
 mSpan.appendChild(mLink);
}

class。
1番目と3番目に入ります。

<span class="mt"></span>
<span class="st"></span>
<span class="mt"></span>

window.onload = function() {
var Span = document.getElementsByTagName(“span”);
var mSpan = new Array();
var mLinks = new Array();
for (i = 0; i Email:hoge*test+com+jp
Email:hoge*test+com

*を@、+をドットに変換してください
[/html]
noscriptでjavascriptがoffのメッセージを出す。

window.onload = function() {
var mLink = document.getElementsByTagName(“a”);
for (i = 0; i

モバイルバージョンを終了