| 情報学部 | 菅沼ホーム | 目次 | 索引 |
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>
| 情報学部 | 菅沼ホーム | 目次 | 索引 |