time = date.getHours().toString() + "時"
getTime().fontsize(i),
getTime().fontsize(i).fontcolor("red"),
メソッド | 内容 |
---|---|
blink() | 点滅させる |
bold() | 強調文字にする |
fontcolor(色名) | 色を指定 |
fontsize(n) | 文字サイズ(n: 1〜7) |
strike() | 消去線 |
sub() | 下付き |
toLowCase() | 小文字にする |
toUpperCase() | 大文字にする |
length() | 文字数を返す |
link(url) | urlへのリンク |
replace(str1,str2 | 文字列中の str1をstr2に変換する |
p.toString(2)
メソッド | 機能 |
---|---|
toExponential(n) | n で指定した小数点以下の桁数で指数表示した文字列を返す |
toFixed(n) | n で指定した小数点以下の桁数で固定小数点表示した文字列を返す |
toPrecision(n) | n で指定した精度で表した文字列を返す |
toString(n) | n で指定した基数で表した文字列を返す( n 進表記) |
ウィンドウシステムのような
GUI(Graphical User Interface)
を利用するプログラムでは,
マウスクリック,ドラッグ,キー入力などの操作の事象(イベント)を監視し,
イベント発生すると,それに対応した処理を行う.
マウスクリックなどをイベントと呼び,
イベント発生に対応して行う処理コードをイベントハンドラと呼ぶ.
上の例では,head部分を省略し,body部分のみを示している.
imgタグに
この画像がクリックされると,関数 clickAction を呼び出す
引数として,イベント情報が保持されているオブジェクト event を渡す
マウスカーソルがこの画像の外に出ると document の背景色を白にする
マウスカーソルがこの画像領域内に入ると document の背景色を緑にする
関数 clickAction の定義
function clickAction(e) { alert("押されたボタンのコード: "+ e.button); }
イベント属性
onclick | マウスボタンをクリックした |
ondblclick | マウスボタンをダブルクリックした |
マウスボタンを押した | |
onmouseup | マウスボタンを離した |
onmouseover | マウスカーソルが入った |
onmouseout | マウスカーソルが外に出た |
onmousemovet | マウスカーソルが移動した |
onkeypress | キーボードのキーを押し続けている |
onkeydown | キーを押した |
onkeyup | キーを離した |
上の例では,head部分を省略し,body部分のみを示している.
<body onmousemove="mouseEvent(event)">
<div id="labelDiv">カーソルを動かして下さい</div>
function mouseEvent(e) { var label = document.getElementById("labelDiv"); var textNode = label.childNode.item(0); textNode.nodeValue = "x="+e.clientX+", y="+e.clientY; }
label = document.getElementById("labelDiv");
textNode = label.childNodes.item(0);
textNode.nodeValue = "x="+eclientX+", y="+e.clientY;
onmousemoveイベント
divタグ内のテキストの変更
上の例では,head部分を省略し,body部分のみを示している.
フォームとイベントの例として,次のHTMLを例示する. 以下では,HTMLファイル全体ではなく,HEAD部は省略して,BODY部のみを示す.
FORMはHTMLと利用者との対話を可能とするためのもので, テキストなどの入出力,ボタン,リスト選択などの機能を提供する.
<form name="フォーム名"> ... </form>
<form name="myForm"> ... </form>
<input type="text" name="inch" size="10">
<input type="button" name="calcButton" value="変換" oncllick="calc(this.form)">
<input type="radio" name="color" value="white" checked>白<br> <input type="radio" name="color" value="yellow">赤<br> ...
<input type="button" name="colorButton" value="変更" onclick="changeColor()">このボタンが押されたときに呼び出される関数 changeColor()
function changeColor() { var n; var colors = document.myForm.color; // ラジオボタン color (配列) for(n=0; n<colors.length; n++) { if(colors[n].checked) { // このボタンがチェックされているか? if(confirm("背景色を"+colors[n].value+"にしますか?")) document.bgColor = colors[n].value; break; } } }
function calc(theForm) { theForm.inch.value = theForm.cm.value / 2.56; }
<form name="question1"> 好きなたべものを選んで下さい(複数選択可)<br> <input name="f" type="checkbox" value="ラーメン">ラーメン<br> <input name="f" type="checkbox" value="そば">そば<br> <input name="f" type="checkbox" value="うどん">うどん<br> <input name="f" type="checkbox" value="カレー">カレー<br> <input name="f" type="checkbox" value="牛丼">牛丼<br> <input name="f" type="checkbox" value="ハンバーガー">ハンバーガー<br> </form>
イベント属性 | イベントの発生 | オブジェクト |
---|---|---|
onClick | マウスクリック | |
onDblClick | マウスをダブルクリック | |
onMouseDown | マウスボタンが押された | |
onMouseUp | マウスボタンが離された | |
onMouseOver | マウスカーソルが入った | |
onMouseOut | マウスカーソルが出た | |
onMouseMove | マウスカーソルが動いた | |
onKeyDown | キーが押された | |
onKeyUp | キーが離された | |
onKeyPress | キーが押された | |
onLoad | ページがロードされた | <body> |
onUnLoad | 他のページに切り替わる | <dody> |
onReset | リセットボタンが押された | <form> |
onSubmit | サブミットボタンが押された | <form> |
onChange | 値が変化した | <input>, <select>, <textarea> |
onSelect | テキストが選択された | <input>, <textarea> |
onFocus | 選択された | <a>, <area> 他 |
onBlur | Focusが解除された | <a>, <area> 他 |
shiftキーやcontrolキーが押された場合,onKeypDownイベントは発生するが, onKeyPressイベントは発生しない.
上のリストでは<body>〜</body>のみを示す
いくつかのオブジェクトについて, メソッドと属性の抜粋を以下に示す.
メソッド | 内容 |
---|---|
write() | HTML文章にテキストを出力する |
getElementById(ID値) | 指定したID値を持つ要素(Element)を返す |
getElementsByTagName(タグ名) | 「タグ名」に一致する要素のリスト(NodeList)を返す |
createTextNode(文字列) | 「文字列」を値として持つテキストノードを生成する |
createElement(タグ名) | 要素を生成する |
属性 | 内容 |
---|---|
title | titleタグの内容(変更可能) |
referre | 直前のページのURL |
domain | サーバのドメイン名 |
URL | このページのURL |
属性 | 内容 |
---|---|
length | NodeListの要素数 |
parentNode | 親ノード |
childNodes | 子ノードのリスト |
nodeValue | ノードの値 |
メソッド | 内容 |
---|---|
item(n) | n番目の要素(Node)を返す |
var list = document.getElementsByTagName("table"); var firstTable = list.item(0);
属性 | 内容 |
---|---|
nodeName | 要素名、あるいは、属性名 |
nodeType | node型に対応した整数値 |
メソッド | 内容 |
---|---|
appendChild(ノード) | ノードを追加する |
removeChild(ノード) | ノードを削除する |
|
|
ElementはNodeを継承しており,
getElementsByTagName(タグ名).item(番号)で返される Node を Element として扱うことができる.
属性 | 内容 |
---|---|
tagName | タグ名 |
メソッド | 内容 |
---|---|
getAttribute(属性名) | 指定した属性の値を返す |
setAttribute(属性名, 属性値) | 指定した属性の値をセットする |
<body> <div>first</div> <div align="right" style="background-color:yellow;">second</div> <script type="text/javascript"> var elements=document.getElementsByTagName("div"); var n; alert("divの総数"+elements.length); for(n=0; n<elements.length; n++) { var element = elements.item(n); document.write("<p>", n, "<br>"); document.write("タグ名 = ",element.tagName,"<br>"); document.write("align = ", element.getAttribute("align"),"<br>"); document.write("style = ", element.getAttribute("style"),"<br>"); document.write("</p>"); element.setAttribute("align","center"); } </script> </body>
上の例では,head部分を省略し,body部分のみを示している.
ディレクトリ
マウスの右ボタンを押すとページの背景色が赤に変わり, 左ボタンを押すと背景色が黄色に変わるページを作りなさい.
マウスボタンが押されてからそれが放されるまでの時間を
alertダイアログに表示するページを作りなさい.
ただし,時間はミリ秒単位で表示すること.
[ヒント] ボタンが押されたときと放されたときの時間
(Dateオブジェクト)を取得すれば,
その差から経過時間を求めることができる.
イベント | 意味 |
---|---|
onmousedown | マウスボタンが押された |
onmouseup | 押された状態にあったボタンが放された |
フォームを利用して,入力された数式を文字列として受け取り, その計算結果を表示するページを作りなさい.