情報学部 | 菅沼ホーム | 目次 | 索引 |
let nw = open("test.html", "test1"); nw.document.open(); nw.document.write("・・・・・"); ・・・・・ nw.document.close();
プログラム(下がそのソースコード)は,alert,confirm,及び,prompt の使用例である.最初に confirm によって確認ダイアログボックスが表示される.「OK」ボタンをクリックすると,prompt により入力欄付のダイアログボックスが表示される.また,「キャンセル」ボタンをクリックすると alert による警告ダイアログボックスが表示される.いずれの場合も,最後に,変数 data の値を表示した警告ダイアログボックスが表示される.
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>window</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">ダイアログ</H1> <SCRIPT TYPE="text/javascript"> let data = -1; if (confirm("次へ進みますか?")) data = prompt("データを入力してください", 0); else alert("本当によろしいですか?"); alert("data = " + data); </SCRIPT> </BODY> </HTML>
プログラム(下がそのソースコード)では,test2.htm を resizable 以外のすべての属性を「no」にし,また,サイズを指定して開いている.その後,開いた Window をスクリーンの中央に移動し,2秒後にその Window のサイズを変更し,さらに4秒後には,test2.htm を開いた Window 自身をクローズしている(ブラウザによっては不可能である場合がある).test2.htm では,100 ミリ秒毎に test2.htm を開いた Window を監視しており,その Window が閉じられると自分自身も閉じている.この例では,定期的に監視するために setTimeout メソッドを利用している.
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>window</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">Window の生成</H1> <SCRIPT TYPE="text/javascript"> nw = open("test2.htm", "test2", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width=700, height=300"); x = screen.width / 2 - 500; y = screen.height / 2 - 250; nw.moveTo(x, y); </SCRIPT> </BODY> </HTML> ------------------------------- test2.htm --------------------------- <!DOCTYPE HTML> <HTML> <HEAD> <TITLE>test2</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY onLoad='timerID1 = setTimeout("Last()", 100);' CLASS="white"> <SCRIPT TYPE="text/javascript"> document.write('<H1>' + name + '</H1>\n'); document.write('<H2>テストホームページ</H2>\n'); document.write('<H3>テストホームページ</H3>\n'); timerID1 = null; timerID2 = setTimeout("resizeTo(1000, 500)", 2000); timerID3 = setTimeout("opener.close();", 4000); function Last() { if (opener == null || opener.closed) close(); else { clearTimeout(timerID1); timerID1 = setTimeout("Last()", 100); } } </SCRIPT> </BODY> </HTML>
プログラム(下がそのソースコード)は,アニメーションの例である.この例では,定期的な動作を行うために使用例2と同じように,setTimeout メソッドを利用している.
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>image</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">アニメーション</H1> <P STYLE="text-align: center"><IMG SRC="fig1.jpg" NAME="fig"></P> <P STYLE="text-align: center"> <INPUT TYPE="button" VALUE="スタート" onClick="a_start()"> <INPUT TYPE="button" VALUE="ストップ" onClick="a_stop()"> </P> <SCRIPT TYPE="text/javascript"> no = 0; mv = false; fg = new Array(3); for (let i1 = 0; i1 < 3; i1++) { fg[i1] = new Image(); fg[i1].src = "fig" + (i1+1) + ".jpg"; } timerID = setTimeout("", 100); function a_start() { if (!mv) { mv = true; ani(); } } function a_stop() { if (mv) mv = false; } function ani() { clearTimeout(timerID); if (mv) { no++; if (no > 2) no = 0; fig.src = fg[no].src; timerID = setTimeout("ani()", 200); } } </SCRIPT> </BODY> </HTML>
プログラム(下がそのソースコード)では,上の例とは異なり,setInterval メソッドを利用している.
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>image</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY CLASS="white"> <H1 STYLE="text-align: center">アニメーション</H1> <P STYLE="text-align: center"><IMG SRC="fig1.jpg" NAME="fig"></P> <P STYLE="text-align: center"> <INPUT TYPE="button" VALUE="スタート" onClick="a_start()"> <INPUT TYPE="button" VALUE="ストップ" onClick="a_stop()"> </P> <SCRIPT TYPE="text/javascript"> no = 0; mv = false; fg = new Array(3); for (let i1 = 0; i1 < 3; i1++) { fg[i1] = new Image(); fg[i1].src = "fig" + (i1+1) + ".jpg"; } function a_start() { if (!mv) { timerID = setInterval('ani()',200); mv = true; } } function a_stop() { if (mv) { clearInterval(timerID); mv = false; } } function ani() { no++; if (no > 2) no = 0; fig.src = fg[no].src; } </SCRIPT> </BODY> </HTML>
プログラム(下がそのソースコード)では,開かれてから2秒後に,指定された量だけブラウザをスクロールしている.
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>window</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY CLASS="white"> <SCRIPT TYPE="text/javascript"> open("test5.htm", "test5", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, width=250, height=100"); </SCRIPT> </BODY> </HTML> ------------------------------- test5.htm --------------------------- <!DOCTYPE HTML> <HTML> <HEAD> <TITLE>window</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <LINK REL="stylesheet" TYPE="text/css" HREF="../../../master.css"> </HEAD> <BODY CLASS="white"> <PRE> 1.テストホームページ 2.テストホームページ 3.テストホームページ 4.テストホームページ 5.テストホームページ 6.テストホームページ </PRE> <SCRIPT TYPE="text/javascript"> setTimeout("scrollBy(50, 30)", 2000); </SCRIPT> </BODY> </HTML>
プログラム(下がそのソースコード)は,sessionStorage と localStorage の使用方法である(一部のブラウザ -Chrome- だけで動作可能).
<!DOCTYPE HTML> <HTML> <HEAD> <TITLE>Web Storage</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> <META NAME=viewport CONTENT="width=device-width, initial-scale=1"> <SCRIPT TYPE="text/javascript"> /************************************/ /* Web Stirage に対するプログラム例 */ /* coded by Y.Suganuma */ /************************************/ session = true; sw = true; // Web Storage の切り替え function change() { document.getElementById("key").style.display = "none"; document.getElementById("value").style.display = "none"; document.getElementById("bt").style.display = "none"; if (session) { session = false; document.getElementById("type").innerHTML = "localStorage"; } else { session = true; document.getElementById("type").innerHTML = "sessionStorage"; } } // データ件数 function data_num() { document.getElementById("key").style.display = "none"; document.getElementById("value").style.display = "none"; document.getElementById("bt").style.display = "none"; let str = "データ件数:"; if (session) str += sessionStorage.length; else str += localStorage.length; document.getElementById("tx").value = str; } // データの追加と削除 function add() { document.getElementById("key").style.display = ""; document.getElementById("value").style.display = ""; document.getElementById("bt").style.display = ""; sw = true; } function del() { document.getElementById("key").style.display = ""; document.getElementById("value").style.display = "none"; document.getElementById("bt").style.display = ""; sw = false; } function add_del() { let str; let key = document.getElementById("key_v").value; if (sw) { let value = document.getElementById("value_v").value; if (session) sessionStorage.setItem(key, value); else localStorage.setItem(key, value); str = "(" + key + " : " + value + ") を追加しました"; } else { let value; if (session) { value = sessionStorage.getItem(key); sessionStorage.removeItem(key); } else { value = localStorage.getItem(key); localStorage.removeItem(key); } str = "(" + key + " : " + value + ") を削除しました"; } document.getElementById("tx").value = str; } // 全てのデータの削除 function del_all() { document.getElementById("key").style.display = "none"; document.getElementById("value").style.display = "none"; document.getElementById("bt").style.display = "none"; if (session) sessionStorage.clear(); else localStorage.clear(); document.getElementById("tx").value = "全てのデータを削除しました"; } // 全てのデータの出力 function out() { document.getElementById("key").style.display = "none"; document.getElementById("value").style.display = "none"; document.getElementById("bt").style.display = "none"; let str = ""; if (session) { for (let i1 = 0; i1 < sessionStorage.length; i1++) { let key = sessionStorage.key(i1); let value = sessionStorage.getItem(key); str += "(" + key + " : " + value + ") \n"; } } else { for (let i1 = 0; i1 < localStorage.length; i1++) { let key = localStorage.key(i1); let value = localStorage.getItem(key); str += "(" + key + " : " + value + ") \n"; } } document.getElementById("tx").value = str; } </SCRIPT> </HEAD> <BODY STYLE="font-size:130%"> <P STYLE="text-align:center"> <INPUT TYPE="button" VALUE="Web Storage Type" onClick="change()" STYLE="font-size:90%"> : <SPAN ID="type">sessionStorage</SPAN><BR><BR> <INPUT TYPE="button" VALUE="件数" onClick="data_num()" STYLE="font-size:90%"> <INPUT TYPE="button" VALUE="追加" onClick="add()" STYLE="font-size:90%"> <INPUT TYPE="button" VALUE="削除" onClick="del()" STYLE="font-size:90%"> <INPUT TYPE="button" VALUE="全削除" onClick="del_all()" STYLE="font-size:90%"> <INPUT TYPE="button" VALUE="全出力" onClick="out()" STYLE="font-size:90%"><BR><BR> <SPAN ID ="key" STYLE="display: none">キー : <INPUT TYPE="text" ID="key_v" SIZE="5" STYLE="font-size:120%"></SPAN> <SPAN ID ="value" STYLE="display: none"> 値 : <INPUT TYPE="text" ID="value_v" SIZE="5" STYLE="font-size:120%"></SPAN> <SPAN ID="bt" STYLE="display: none"> <INPUT TYPE="button" VALUE="OK" onClick="add_del()" STYLE="font-size:90%"><BR><BR></SPAN> <TEXTAREA TYPE="text" ID="tx" COLS="30" ROWS="5" STYLE="font-size: 120%"></TEXTAREA> </P> </BODY> </HTML>
情報学部 | 菅沼ホーム | 目次 | 索引 |