プログラミング:古いJavaScriptのおもちゃ
非常勤講師:山本博志 講義補助資料
2004.7.6
JAVAやJAVAScriptを使った化学系のおもちゃを紹介します。
まず、訪問者の使っているブラウザーでJAVAScriptが使える状態かどうかをチェックします。ジャバスクリプトが使えるなら先に進み使えないならnoJS.htmlへ強制ジャンプするようなスクリプトです。
JAVAやJAVAScriptを使った化学系のおもちゃを紹介します。
まず、訪問者の使っているブラウザーでJAVAScriptが使える状態かどうかをチェックします。
ジャバスクリプトが使える状態かチェックします。JAVAScriptが使えない場合にはURLジャンプ機能を使ってnoJS.htmlへジャンプします。 URLジャンプ書式: <SCRIPT type="text/javascript"> のようにスクリプトの最後に< NOSCRIPT>、スクリプトが使えなかった場合の処理をmetaタグで2秒後にnoJS.htmlへジャンプすると書き加えます。 |
ジャバスクリプトが使えるなら先に進み使えないならnoJS.htmlへ強制ジャンプするようなスクリプトです。
JAVAScriptが使えない場合強制的にジャンプする。
ジャバスクリプトが使えない設定になっている場合にこのページへジャンプしてきます。 <SCRIPT type="text/javascript"> このように<NOSCRIPT>タグを書いておくとJAVAScriptが有効でないと赤文字の部分が実行されます。 |
分子量の計算を行うJAVAScriptです。ブラウザーの環境設定でJAVAScriptをOnにしたりOffにして試してみてください。
次には訪問回数をカウントしてみます。
これに はクッキーを使います。これはブラウザーにテキスト情報を残す方法です。これも場合によるとブラウザーの設定でクッキーを受け付けないと設定されている事があります。 <SCRIPT type="text/javascript"> ここではsetCookieをやってみて、もう一度getCookieをやって値が取れなければクッキーが使えない状態であると判断します。ここではdocument.writeでクッキーの設定をOnにするように促していますが、強制的にNoCookie.htmlへジャンプさせるのは前と同じく簡単にできます。アクセスの何回目かにアンケートに答えてくださいとかを書き込む事も簡単にできます。もちろんアンケートのページに強制的にジャンプさせてアンケートを送らなければ先に進めなくもできます。 |
これにはクッキーを使います。これはブラウザーにテキスト情報を残す方法です。これも場合によるとブラウザーの設定でクッキーを受け付けないと設定されている事があります。受け付けない場合の処理を書き足します。
訪問者の使っているブラウザーのなどの情報も取る事ができます。ブラウザーの種類やバージョンによって見せるページを変える時に使います。
<SCRIPT type="text/javascript"> とやると情報を書き出します。 document.form.Q2.value= とやるとアンケートフォームのQ2に情報を自動的に書き込みます。 |
次にJAVAが使える状態かチェックします。
JAVAが使える状態かをチェックします。
JAVAが使えるかどうかは、 <SCRIPT language="JavaScript"> で確認できます。 さらに設置したアプレットで String jVersion,jVendor,jVendorUrl,jClass; jVersion="Java Version = " +System.getProperty("java.version","Unknown"); とSystem.getPropertyを使って情報を取ることができます。 JAVAのバージョンによってさらに違うページにジャンプする事もできます。 |
せっかくJAVAやJAVAScriptが使えるかどうかチェックしてもチェックのページを通らずに検索サイトから直接アクセスされてはどうしようもありません。どのページからきたかをチェックするスクリプトはこうなります。
このページから呼び出します。
どのページから来たかを調べるには、 <SCRIPT type="text/javascript"> document.referrerの長さを調べてそれが0以上ならdocument.write(document.referrer+"からのご訪問");と表示する。 これを応用すれば if (document.referrer=="http://home.f03.itscom.net/r-ei/omotya/index.html"
){ < meta http-equiv="refresh" などとやっておけばBadFrom.htmlへ飛ばす事ができる。 |
直接 http://home.f03.itscom.net/r-ei/omotya/from.html を打ち込むとdocument.referrerにこのページが設定されないのでBadFrom.htmlに飛ばしてしまうことができます。(だけどSafariではうまく動かないようです。)
次はJAVA Script を用いたデータベースの取り扱いです。かなり以前に(1999年5月)分子式やCAS#からSmilesの式を検索するデータベースを作りました。引きずり出してきて使ってみると、IEでもSafariでも動きます。ところが最近インターネットでそうしたデータベースの作り方を調べて出てきたものは少し構文が違っていてしかもIEでないと動きませんでした。ともかく、PHPやMySQLなどが動かなくてもかなり高速なデータベースがつかえるので色々な事ができます。
せっかくJAVAScriptのデータベースが動いたので検索した分子の構造を書くJAVAアプレットを作ってみます。
まずは単独の動作でSmilesの構造式を入れるとふにゃふにゃ分子を描くアプレットです。これに対してSmilesの式を手入力するのは何なので先ほどの分子式やCAS#からSmilesの式を検索するデータベースの検索結果からふにゃふにゃ分子を書く事を考えます。これはJAVAScriptの中で持っている文字列変数をJAVAに受け渡す方法が必要となります。インターネットとかで探してみるとサンプルが見つかりました。この方法を使うとWindowsではうまく行きそうですがそれ以外のマシンではどうも駄目そうです。
さらにインターネットを探すとJAVAScriptの中から直接JAVAを起動し,そのときにParamからJAVAに値を渡しているサンプルが見つかりました。
これならマックでもWindowsでもちゃんと動くようです。
そしてデーターベース検索をしてその構造をふにゃふにゃ分子で描く一連のプログラムはこうなります。このような形ででもデータベースが扱えると色々なことができます。
このデータベース機能を使ってラジカル重合の遷移状態データベースを作ってみました。是非試してみてください。
プログラミングのトップページへ