Pirika logo
JAVA,HTML5と化学のサイト

Pirika トップ・ページ

Pirikaで化学
 物性化学
 高分子化学
 化学工学
 分子軌道
 情報化学

 その他の化学
 アカデミア
 MOOC講義資料
 プログラミング

ハンセン溶解度パラメータ(HSP):
 HSP基礎
 HSP応用
 ポリマー
 バイオ・化粧品
 環境
 物性推算
 分析
 化粧品の処方設計
 その他
 自分でやってみよう

雑記帳

Ad Space for you

 

Ad Space for you

 

 

 

Last Update

03-Sep-2019

プログラミング古いJavaScriptのおもちゃ

非常勤講師:山本博志 講義補助資料

 

2004.7.6

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

まず、訪問者の使っているブラウザーでJAVAScriptが使える状態かどうかをチェックします。ジャバスクリプトが使えるなら先に進み使えないならnoJS.htmlへ強制ジャンプするようなスクリプトです。

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://home.f03.itscom.net/r-ei/omotya/noJS.html">

</NOSCRIPT>

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

 

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

JAVAScriptが使えない場合強制的にジャンプする。

ジャバスクリプトが使えない設定になっている場合にこのページへジャンプしてきます。

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

</NOSCRIPT>

このように<NOSCRIPT>タグを書いておくとJAVAScriptが有効でないと赤文字の部分が実行されます。

 

分子量の計算を行うJAVAScriptです。ブラウザーの環境設定でJAVAScriptをOnにしたりOffにして試してみてください。

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

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

<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>

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

document.form.Q2.value=

とやるとアンケートフォームのQ2に情報を自動的に書き込みます。

 

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

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

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

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

プログラミングのトップページへ