はじめに
スパムメール予防対策のため,メールアドレスの半角アットマーク 「@」 を別の文字,例えば 「@ (全角)」 とか 「_at_」 とか,に置き換えての表記をよく見かけます.
メールを送るときは 「@ (全角)」「_at_」 を 「@ (半角)」 に置き換えてね,というヤツです.
まぁ,置き換え作業自体はたいしたことありませんが,そのちょっとしたひと手間を省けるとハッピーかな,個人的に.そんなことについて考え出したのが,このエントリを書く 1時間ほど前のことでした.
で?
次に示すような javascript を書くに落ち着きました.
// include 'prototype.js';
function replaceAtmark( classname, action, replacefrom ) {
var emailclasses = $$( '.' + classname );
for( var i = 0; i < emailclasses.length; i++ ) {
Event.observe( emailclasses[i], action, function() {
if( this.innerHTML.indexOf( replacefrom ) >= 0 ) {
this.innerHTML = this.innerHTML.replace( replacefrom, '@' );
}
}, false );
}
}
クラス名が classname な要素に対して action なイベントが発生したとき,その要素内の HTML 文字列について, 文字列 replacefrom を @ に置き換える,というだけものです.
例えば...
<address><a href="mailto:contact☆iwa-ya.net">contact☆iwa-ya.net</a></address>※ メールアドレスは架空のものです,念のため.
といったコードを
<address class="email"><a href="mailto:contact☆iwa-ya.net">contact☆iwa-ya.net</a></address>※ メールアドレスは架空のものです,n(ry
のように置き換え,次のようなスクリプトを onload 内とか HTML の最後の方とか無難そうなところに追加します.
replaceAtmark( 'email', 'mouseover', '☆' );
動くかな?
スクリプト追加前.
contact☆iwa-ya.net※ メールアドレs(ry
スクリプト追加後.マウスオーバーで 「☆」 が 「@」 に置き換えられます.
contact☆iwa-ya.net※ m(ry
おわりに
ソースの文字列自体が置き換わるわけではないので,スクリプト追加前後でスパム対策状況が変化するわけではありませんが,ユーザ側はちょっとハッピーかも,と勝手に思ってみます.
まぁ javascript を切られると元も子もありませんが...
最近の閲覧数
- [emacs] インデントをハイライトしてくれる「Highlighting indentation」で脱・インデント迷子
- IRC初心者がIRCを通知ツールとして使ってみる,または個人的IRC環境のメモ
- UbuntuとCentOSとにおけるlogrotateの挙動の違いでハマった
- aquaさんで開通間近の新東名高速道路を走ってきた
- Textile記法で手軽にWikiっぽく記録を残しておくツール「SiTeWiki」を作ってみた
- 「GTDme」というオレオレGTDツールを作って使い始めようとしています
- [git][perl] rebase祭りを支援するツール「git-rebase-matsuri」というのを書いてみた
- [perl] Cache::FileCacheが保存するファイルの中身を覗いてみるメモ
- Kansai.pm #14 へおジャマさせていただいてきた
- HTTPSとバックエンドなPlackアプリケーションとPlack::Middleware::ReverseProxyとHTTPヘッダ「X-Forwarded-HTTPS」と
最近のエントリ
- [perl] Image::Sizeで画像サイズを取得できないことがある件とその(アドホックな)対処方法
- 5月連休とaquaさん
- [perl][php] Textile記法+GeSHiでシンタックスハイライトするためのText::Textile::Pluggableプラグインを書いてみた
- [perl] Markdown記法をプラグインっぽく拡張できる「Text::Markdown::Pluggable」というモジュールを書いてみた
- [perl] Textile記法をプラグインっぽく拡張できる「Text::Textile::Pluggable」というモジュールを書いてみた
- aquaさんで入鹿池を2周してきた(約2年ぶり2回目)
- aquaさんで山崎川とか天白川とかの桜を眺めてきた(おまけで豊橋少々)
- サイクルショップカワタさんなツーリング@奈良
- 「魔法少女まどか☆マギカ展 名古屋会場」の写真いくつか
- Kyoto.pm #1に参加 & LTに飛び入らせていただいてきた
カテゴリー
タグ
-
actionscript
amon2
announce
bicycle
bookmarklet
cafe
cooking
cpan
della.js
dqwindowmanager
eating
elisp
emacs
event
gps
gtd
html
http
image
iphone
javascript
lifelog
linux
mac
mono
music
mylifehacks
mysql
mywebservice
neko
nicograph
onomichi
pc
perl
photo
plack
study
svn
tool
travel
twitomonitor
twitter
wcan
windows
wordpress
最近のコメント
-
No Responses.
最近のトラックバック
-
No Responses.
