index.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="main.js"></script> <title>課題_文字色と背景色を保存する</title> </head> <body> <h1>課題_文字色と背景色を保存する</h1> <p><input type="text" id="bkcolor" size="40" placeholder="背景色をいれてね 例)red, skyblue, #ffcc00 ..."></p> <p><input type="text" id="color" size="40" placeholder="文字色をいれてね 例)red, skyblue, #ffcc00 ..."></p> <p><button type="button" id="changeBtn">色を変える</button></p> </body> </html>
main.js
/*
* main.js:
* 文字色と背景色を保存する(ローカルストレージに保存)
*
*/
var KEY_COLOR = "COLOR"; // 文字色用キー
var KEY_BKCOLOR = "BKCOLOR"; // 背景色用キー
var color = null; // 文字色
var bkcolor = null; // 背景色
/*
* ローカルストレージのデータチェック
*/
function getStorage(){
// ローカルストレージに保存された内容を取得
color = localStorage.getItem(KEY_COLOR);
bkcolor = localStorage.getItem(KEY_BKCOLOR);
// ローカルストレージに文字色と背景色データが保存されていれば色変更
if(color !== null && bkcolor != null){
setColor();
}
}
/*
* ローカルストレージにデータを保存する
*/
function setStorage(){
localStorage.setItem(KEY_BKCOLOR, bkcolor);
localStorage.setItem(KEY_COLOR, color);
}
/*
* 文字色と背景色を変更する
*/
function setColor(){
document.querySelector("body").style.color = color;
document.querySelector("body").style.backgroundColor = bkcolor;
}
/*
* 起動時にローカルストレージの内容をチェックして色を設定
*/
window.addEventListener("load", function(){
// ボタンイベント設定
document.getElementById("changeBtn").addEventListener("click", function(){
// テキストボックスに入力された文字色と背景色を取得
color = document.getElementById("color").value;
bkcolor = document.getElementById("bkcolor").value;
// 双方のテキストボックスのどちらかが何も入っていないとき
if(color === "" || bkcolor === ""){
alert("文字色と背景色を指定してください");
return;
}
// 文字色・背景色変更
setColor();
// 変更した色名をストレージに保存
setStorage();
});
// ローカルストレージの内容をチェック
getStorage();
});


コメント