先日 「コメント項目追加」 について書いたのですが、 なにかもやもやとしておりまして。
やはり生成されるメアドがゴツイというかアヤシイというか。
「もちっと何とかならないかなー」 と少し改良してみました。
( より 「それっぽい」 アドレスを吐くようになってます )
【 設置法 】 head領域( </head> の手前 )に以下のスクリプトを書きます。
( 可能なら外部スクリプト化し、permanent_area ブロックに入れて下さい )
<script type="text/javascript"><!-- var V=new Array (); V[0]=new Array ('項目名1','値1','値2'・・・); V[1]=new Array ('項目名2','値1','値2'・・・); V[2]=new Array ('項目名3','値1','値2'・・・); function Prep() { var ck=document.comment_form.mail.value; if (ck=="" || ck.indexOf('-hoge')<1) { for (i=0;i<V.length;i++) { document.write('<select name="D'+i+'">'); for (j=0;j<V[i].length;j++) { document.write('<option value="'+j+'">'+V[i][j]+'</option>'); } document.write('</select> '); } } } function Encd() { if (document.comment_form.D0) { var D=""; D+=String.fromCharCode(eval(document.comment_form.D0.value)+97); D+=String.fromCharCode(eval(document.comment_form.D1.value)+97); D+=String.fromCharCode(eval(document.comment_form.D2.value)+97); var MA="-hoge"+document.comment_form.mail.value; if (MA=="-hoge") {MA=MA+"@hoge"} document.comment_form.mail.value=D+MA; } document.comment_form.submit(); } function Decd(m) { if (m!="") { var Ma=m; if (m.indexOf('-hoge')>0) { var p=m.split('-hoge'); var D=p[0]; Ma=p[1]; for (i=0;i<V.length;i++) { var x='?'; var k=D.charCodeAt(i)-97; if (k>0 && k<v[i].length) { x=V[i][k] } document.write(' '+V[i][0]+':'+x); } } if (Ma!="@hoge") { document.write(' <a href="mailto:'+Ma+'">@</a>'); } } } //--></script>
コメント入力FORM と コメント表示部 へ加える変更は前記事と同じです。
既に設置されてる方(推定 0人 )はそのままでOKです。
( スクリプト本体の「色文字」部分の性状も前記事と同様です )
【 解 説 】 付加データを ◎半角英字化し ◎メアドの頭に 貼り付けるようにしました。
エンコード/デコード 関数が変わっただけで基本的な仕組みは前作と同じです。
ただ、数値を a〜z に置き換えるという性質上、一項目あたりの選択肢設定数には上限(26件まで)がある事に留意されて下さい。( 実際にはこれで十分だと思われますが )
元より私自身の「へたれな脳内遊戯」でありまして誰に使って貰おう、という程のものではありませんが 「何かの参考」になれば幸いです。
( 以下のサンプルは前記事と同じく「性別」「血液型」「星座」 情報をコメントに付加するものですが 外部スクリプトはコメントタグを解除すればそのまま使用可能です )
| . |