フォームのmailto:はCGIを使わずにアンケートなどを作れるので便利ですが、送り返されるメールは文字化けしていてデコーダーで手間ひまかけて戻さなければなりません。でも、NN3.0からは、フォームメールの返送を文字化けしないようにする方法としてformタグ内にenctype="text/plain"の設定をするというものができました。でも、この方法だと、NN3.0より前のバージョンではFORMが機能しなくなってしまうという問題があります。そこで、JavaScriptのencoding命令を使って設定し、バージョンチェックしてNN3.0~の場合だけ機能させ、それ以外は普通の通常通りのフォームとして機能させるようにしました。
応用:実際のフォームに埋め込んでご利用ください。
参照: onSubmit, バージョンチェックif(navigator.appVersion.charAt(0)>=バージョン番号){命令}, encoding,
<html> <head> <title></title> </head> <body> <form name="f1" method="POST" action="mailto:xx@xxxx.or.jp" onSubmit="if(navigator.appVersion.charAt(0)>=3) document.f1.encoding='text/plain' "> <input type="text" name="データ1"> <input type="submit" value=" 送信 "><br> "mailto:xx@xxxx.or.jp"の部分を自分のメールアドレスに書き換えて送信してみてください。 </form> </body> </html>
action= のあとに送信先のアドレス(普通は自分のアドレス)を記入して使ってくださいonSubmit="命令文"で送信ボタンが押されたら"命令文"を実行するという意味です
if( navigator.appVersion.charAt(0) >= 3 ){ 命令1 } else { 命令2 }はバージョンチェックです。NN3.0以降の命令を{命令1}に、それ以外バージョン用の処理を{命令2}に記述します。ちなみに、ここでは、else{命令2}と括弧{}を省略して使っています
document.f1.encoding='text/plain'でf1という名前のフォームの送信形式を'text/plain'にします
| CONTENTS
| PART1 これだけ知っていれば大丈夫
| PART2 サンプルの紹介
| PART3 JavaScript言語仕様
| PART4 JavaScriptクイック書式一覧
| PART5 JavaScriptサイト
| オンラインサポートページ(回線をつないでください)