pirika logo

化学系プログラミング > 比較的新しい化学系プログラミング > 古いJAVAのプログラム

2004.7.6

古いJavaScriptのおもちゃ

JAVAと連携させているプログラムは現在のブラウザーでは動きません。

JAVAやJAVAScriptを使った化学系のおもちゃを紹介します。

まず、訪問者の使っているブラウザーでJAVAScriptが使える状態かどうかをチェックします。

ジャバスクリプトが使える状態かチェックします。JAVAScriptが使えない場合にはURLジャンプ機能を使ってnoJS.htmlへジャンプします。

URLジャンプ書式:
<META HTTP-EQUIV="refresh" CONTENT="ウェイト秒;URL=移動先のアドレス">

<SCRIPT type="text/javascript">
<!--
document.write("JavaScriptが使える状態です。");
// -->
</SCRIPT>
</p>
<NOSCRIPT>
< meta http-equiv="refresh"
content="2;URL=http:/XXXX/YYYY/omotya/noJS.html">
</NOSCRIPT>

のようにスクリプトの最後に< NOSCRIPT>、スクリプトが使えなかった場合の処理をmetaタグで2秒後にnoJS.htmlへジャンプすると書き加えます。

ジャバスクリプトが使えるなら先に進み、使えないならnoJS.htmlへ強制ジャンプするようなスクリプトです。

次には訪問回数をカウントしてみます。

これに はクッキーを使います。これはブラウザーにテキスト情報を残す方法です。これも場合によるとブラウザーの設定でクッキーを受け付けないと設定されている事があります。

<SCRIPT type="text/javascript">
< !--
acTimes=getCookie("enokoroAC");
if (acTimes=="") {
acTimes=1;
}
document.write(acTimes+"回目のご訪問");
if (acTimes=="10") {
document.write("そろそろ、アンケートにお答えしていただくわけにはいきませんでしょうか?");
}
acTimes++;
setCookie("enokoroAC",acTimes);
acTimes2=getCookie("enokoroAC");
if (acTimes2=="") {
document.write("クッキーが使えません。クッキーの設定をOnにしてください。");
}

ここではsetCookieをやってみて、もう一度getCookieをやって値が取れなければクッキーが使えない状態であると判断します。

ここではdocument.writeでクッキーの設定をOnにするように促していますが、強制的にNoCookie.htmlへジャンプさせるのは前と同じく簡単にできます。

アクセスの何回目かにアンケートに答えてくださいとかを書き込む事も簡単にできます。もちろんアンケートのページに強制的にジャンプさせてアンケートを送らなければ先に進めなくもできます。

訪問者の使っているブラウザーのなどの情報も取る事ができます。ブラウザーの種類やバージョンによって見せるページを変える時に使います。

<SCRIPT type="text/javascript">
< !--
document.write(
"ブラウザ      "+navigator.appName+"\n"+
"エージェント    "+navigator.userAgent+"\n"+
"バージョン     " +navigator.appVersion+"\n"+
"コードネーム    " +navigator.appCodeName+"\n"+
"使用言語      " +navigator.browserLanguage+"\n"+
"使用言語      " +navigator.language+"\n"+
"プラットフォーム  "+navigator.platform);
// -->
< /SCRIPT>

とやると情報を書き出します。

次にJAVAが使える状態かチェックします。

JAVAが使えるかどうかは、

<SCRIPT language="JavaScript">
< !--
if (navigator.javaEnabled()) {}

で確認できます。

さらに設置したアプレットで

String jVersion,jVendor,jVendorUrl,jClass;
String osName,osArch,osVersion;

jVersion="Java Version = " +System.getProperty("java.version","Unknown");
jVendor="Java Vendor = " +System.getProperty("java.vendor","Unknown");
jVendorUrl="Java Vendor Url = " +System.getProperty("java.vendor.url","Unknown");
jClass="Java API = " +System.getProperty("java.class.version","Unknown");
osName="OS name = " +System.getProperty("os.name","Unknown");
osArch="Architecture = " +System.getProperty("os.arch","Unknown");
osVersion="OS version = " +System.getProperty("os.version","Unknown");

とSystem.getPropertyを使って情報を取ることができます。

JAVAのバージョンによってさらに違うページにジャンプする事もできます。

せっかくJAVAやJAVAScriptが使えるかどうかチェックしてもチェックのページを通らずに検索サイトから直接アクセスされてはどうしようもありません。どのページからきたかをチェックするスクリプトはこうなります。

どのページから来たかを調べるには、

<SCRIPT type="text/javascript">
<!--
if (document.referrer.length !=0 ){
document.write(document.referrer+"からのご訪問");
}else{
document.write("お気に入りからか直接打ち込みのご訪問");
}
//-->
</SCRIPT>

document.referrerの長さを調べてそれが0以上ならdocument.write(document.referrer+"からのご訪問");と表示する。

これを応用すれば

if (document.referrer=="http://home.f03.itscom.net/r-ei/omotya/index.html" ){
//ここから来た場合はOK
}else{
//そうでなければ、
document.write("正しい道筋からおいで下さい");

< meta http-equiv="refresh"
content="5;URL=http://home.f03.itscom.net/r-ei/omotya/BadFrom.html">
}

などとやっておけばBadFrom.htmlへ飛ばす事ができる。

直接 http://XXX/YYY/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でもちゃんと動くようです。

そしてデーターベース検索をしてその構造をふにゃふにゃ分子で描く一連のプログラムはこうなります。このような形ででもデータベースが扱えると色々なことができます。

このデータベース機能を使ってラジカル重合の遷移状態データベースを作ってみました。是非試してみてください。


Copyright pirika.com since 1999-
Mail: yamahiroXpirika.com (Xを@に置き換えてください) メールの件名は[pirika]で始めてください。