Javaスクリプトの便利なオブジェクト・メソッドの使い方をメモしました。

オブジェクト・プロパティ・メソッド・関数

はっきりいって区別や意味が分かりませんが、試行錯誤でなんとなく使っていけるようになります。あまり理論的に考えないで、必要なものの使い方を覚えていくようにしましょう。

スクリプトを別ファイルにする

スクリプトが長くなったり、他のHTMLファイルでも使いたいときは、別ファイルにして読み出せます。別ファイルは、スクリプトの中身だけをメモ帳で保存し、拡張子に.jsを付けます。実際に読み出すには、
<script language=”JavaScript” src=”ファイル名”></script> とします。
実は、拡張子はjsでなくとも、txtとしても呼び出せます。これは、変数データなどを読ませたい場合に使えます。

関数の帰り値

function 名前(引数){ }で名前に値を返す形式も作れます。
その場合は、最後に return 値 とすれば、名前という変数に値が入ります。
(例: function nibai(a){ return a*2;} )

文字列操作

Basicでおなじみの、leftやmidなどは使えません。
 文字列の m文字目から、n文字目を取り出すには、文字列.substring(m,n) を使います。
 このとき、文字列.substring(3,4)は、3文字目から4文字目までですが、文字列の3文字目だけになります。
1文字だけ抜き取る場合は、文字列.charAT(3)を使います。

ASCII文字コードを取得するには、文字.CharCode(0) で求まります。(1)だとユニコード

文字列中の特定の文字の位置を得る  indexOf

 例) 文字列変数 message の中の # と言う文字の位置 po = message.indexOf("#")

文字列の長さは、文字列.length となります。

文字列を、特定の区切り文字で分解するには

 var a=文字列.split(区切り文字) で、配列まで作れてしまいます。
例えば、msg="こんにちは,わたしは,Win坊です" で var a=msg.split(",") とすると
a[0]には こんにちは a[1]には わたしは a[1]には Win坊です が入ります。これは便利です。

 msg.split(".").length-1 で、msgの中の,の数も数えられます。

リンク先のhtmlに変数を送る

 グローバル変数も、htmlファイルが異なっては無効です。そんなときは、リンクのファイル名にブックマークのように#で文字列を追加し、これを相手先で取り出します。

例) test.htm へリンクするときに、ab01という文字列を送りたい: <a href=”test.htm#ab01”> で、

test.htm で mg = document.URL ; が test.htm#ab01 という文字列になるので、これから #以降を切り出します。
このように仕切りに使える文字は、?や@がありますが、エラーを起こしやすいので、#が最も安全です。
このとき注意することは、これは文字列から切り出したものなので、数字であっても数値にはならないということです。
数値にするには、eval(文字列)で変換します。

データベース型のページを作る

表データなどを更新する場合、うっかりタグを消したり書き換えてしまったりするとページが壊れてしまい、データだけの更新にも注意が必要になります。このような場合、表データのみ、拡張子txtの別ファイルにし、これを外部ファイルとして読み込ませ、document.writeで書き出すことが便利です。

例えば、画像ファイル名・詳細ファイルのリンク先・商品名・価格 といったデータを、
<--
ldata[1] = "cp5.gif|cp5.pdf|デジカメ|23800|";
ldata[2] = "cp9.gif|cp9.pdf|お茶|600|";
ldata[3] = "cp6.gif|cp6.pdf|ホチキス|120|";
ldata[4] = "cp7.gif|cp7.pdf|ビニールテープ|60|";
var datasu = ldata.length ;
-->
data.txt というファイルに保存します。これを、<script language="JavaScript" src="data.txt"></script> で読み込みます。
これの前に、ldata = new Array で配列を定義しておきます。 この配列にデータが読み込まれるので、これをsplitで分けます。
<table></table>の間に、javascriptを記述し、document.writeで書き出します。これを行ごとにhdata = ldata[1].split で分解します。
1行分のデータは、
hdata = ldata[1].split;
document.write("<tr><td><a href='" +  hdata[1] +"' target='_blank'><img src='" + hdata[0] +"' '></a><td>"+ hdata[2]+ "</td>" + hdata[3] + "</td></tr>");
です。for文で1から4まで繰り返し、</table>で表を閉じます。

ldata.length で、データの配列の数が取得できます。

この場合、画像ファイルがあるので、これを更新する場合は画像ファイルもアップしなければなりませんが、data.txtはメモ帳で編集できるので、ページの更新が楽になります。

これらのテクニックを使うと、一つのhtmlファイルを、#数字 をつけて呼び出し、データベースの何番目かのデータを読み込んで表示するページが作れます。この方法は、CGIが書けないWin坊が、必要から発明したものです。

これを使う場合、location.reload() で、更新しないと切り替わらないので注意してください。