k = prompt("繰り返しの回数は? ", "0");
alert((n+1)+"/"+k);
if( !confirm("続けますか?") )
close();
| プロパティ名 | 機能 |
|---|---|
| status | ブラウザのステータスバーに表示する文字列 |
| opener | このウィンドを開いたウィンドウ |
| name | ウィンドウの名前 |
| closed | ウィンドウが閉じているときに真(true), 開いているときには偽(false) |
| window | このウィンドウへの参照 |
| メソッド名 | 機能 |
|---|---|
| alert(message) | 警告ダイアログを開く |
| confirm(question) | 確認ダイアログを開く. true/falseを返す |
| prompt(message,default) | 入力のためのダイアログを開く.messageをダイアログに表示し, 入力を待つ.defaultは入力を省略した場合の戻り値 |
| open() | 新しくウィンドウを開く |
| forcus() | このウィンドウをアクティブにする |
| blur() | このウィンドウを背面に移動する |
| close() | このウィンドウを閉じる |
| moveBy(x,y) | ウィンドウを指定したピクセル分移動する |
| moveTo(x,y) | ウィンドウを移動する |
| resizeBy(width,height) | ウィンドウサイズを指定したピクセル分広げる |
| resizeTo(width,height) | ウィンドウサイズを変更する |
| scrollBy(x,y) | 指定したピクセル分だけスクロールする |
| scrollTo(x,y) | 指定した位置までスクロールする |
| setInterval(code, interval) | codeを一定間隔の時間(interval)でくり返し実行する |
| setTimeout(code, delay) | delay時間後にcodeを実行する |
| clearInterval() | setIntervalで指定したくり返し実行を解除する |
| clearTimeout() | setTimeoutで設定したコードの実行を解除する |
alertメソッドを用いれば変数の値などを表示することができるので, デバッグに利用することができる.
[課題]
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>ex1-2</title>
</head>
<body>
<script type="text/javascript">
(a) 変数宣言などの準備
(b) 現在の日時を取得する
(c) 「秒」をもとに文字サイズを決める
(d) 日時を書き出す
</script>
</body>
</html>
var now = new Date(); // 現在の日時を変数 now に記憶
var size = now.getSeconds() % 7 + 1;
<Hn>yy年mm月dd日 hh時mm分ss秒</Hn>と書き出す.ただし,nはサイズ.
document.write("<h",size,">", // サイズ
now.getFullYear(),"年",
now.getMonth()+1,"月",
now.getDate(),"日",
now.getHours(),"時",
now.getMinutes(),"分",
now.getSeconds(),"秒",
"</h",size,">");
alert文を利用した,デバッグの方法を説明する.
次の内容の HTMLファイルを作成したとする.
<!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>ex1-2</title>
</head>
<body>
<script type="text/javascript">
var now = new Date();
var size = now.getSeconds() % 7 + 1;
documentwrite("<h",size,">",
now.getFullYear(),"年",
now.getMonth(),"月",
now.getDate(),"日"
now.getHours(),"時",
now.getMinutes(),"分",
now.getSeconds(),"秒",
"</h",size,">");
</script>
</body>
</html>
上のページをブラウザに表示しようとしても正しく実行されない.
以下,原因を追求し,正しく動作させるまでのデバッグの過程を例示する.
これから, コメントアウトした箇所以外は正しく実行されることがわかる.
now.getDate(),"日"
にあることがわかる.
"日" → "日",
と修正する.
now.getMonth() → now.getMonth()+1
theday.setMonth(k-1);
days = (theday.getTime()-today.getTime())/(1000*60*60*24);
// 関数: 現在の時刻を文字列で返す
function getTime() {
var time, date;
date = new Date(); // 現在の日時を取得
// 時、分、秒を文字列に変換し連結
time = date.getHours().toString() + "時"
+ date.getMinutes().toString() + "分"
+ date.getSeconds().toString() + "秒";
return time;
}
time = date.getHours().toString() + "時"
getTime().fontsize(i),
getTime().fontsize(i).fontcolor("red"),
以下の処理を行う Web ページを JavaScript を使用して作成しなさい.
作成する Webページは指定された名前のファイルに保存し,ブラウザにより, 正常に動作することを確認すること.
ファイルはホームページの public_html/acss2/ディレクトリ内に置くこと.
eval("3+4+2") → 9
のように,数式の計算値を得ることができる.
| 関数 | 機能 |
|---|---|
| eval(st) | stを評価した値を戻り値として返す |
promptダイアログを使用して計算式を入力すると, 入力式は,定数ではないので,文字列として受け取られてしまう. 上で述べた eval を利用すると文字列として受け取った計算式を 計算(評価)することができる.
promptダイアログを使用して,計算式を受け取り, それを評価した結果を表示するページをファイル ex2-1.html に作成せよ.
ダイアログボックスより,生年月日を受け取り, 現在の年齢を表示するページを作成せよ. 作成するファイル名は, ex2-2.html とする.