![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
このコードは、「textareaに入力されたテキストが改行も含めて、表示ボタンが押されたときに表示される。フォントサイズを指定することができる。ページが再読み込みされたとき、Cookieに保存されている前回のデータが復元される。」というものなのですが、実行してみてもデータが復元されません。どうしてでしょうか。できればフルのコードも含めて教えていただきたいです。よろしくお願いいたします。〈以下HTML〉
<!DOCTYPE html>
<html>
<head>
<title>アプリ</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<main>
<!-- 入力フォーム -->
<form action="#" id="form">
<textarea type="text" name="content" rows="10" cols="50"></textarea><br>
文字サイズ(px): <input type="text" name="fontsz" size="3" value="20">
<input type="submit" value="表示">
</form>
<!-- 入力結果を出力 -->
<p id="output" style="font-size: 20px; white-space: pre-line;"></p>
<script>
// ページ読み込み時にCookieからデータを復元
window.onload = function () {
let savedInput = getCookie('savedInput');
if (savedInput) {
document.getElementById('output').textContent = savedInput;
}
};
// フォーム送信時に入力データをCookieに保存
document.getElementById('form').onsubmit = function (event) {
event.preventDefault();
let inputForm = document.getElementById('form').content.value;
setCookie('savedInput', inputForm, 365); // 365日間保存
document.getElementById('output').textContent = inputForm.replace(/\n/g, "\n");
};
// Cookieにデータを書き込む関数
function setCookie(c_name, value, expiredays) {
let exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
}
// Cookieからデータを読み取る関数
function getCookie(c_name) {
if (document.cookie.length > 0) {
let c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
let c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
</script>
</main>
</body>
<script>
// submit時にイベント実行をする関数
document.getElementById('form').onsubmit = function (event) {
// 再読み込み防止
event.preventDefault();
// 入力フォームの内容を取得
let inputForm = document.getElementById('form').content.value;
let fontsize = document.getElementById('form').fontsz.value;
document.getElementById('output').style.fontSize = fontsize + 'px';
// 入力内容を出力
document.getElementById("output").textContent = inputForm.replace(/\n/g, "\n");
}
</script>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
formのsubmitイベントの発生に...
-
javascriptでASPにデータを渡す
-
複数のフォームを一括で自動送...
-
1つのform内に2つのsubmitボタ...
-
submitした値を返したい
-
JAVASCRIPT
-
focus()が上手くいかない
-
POST時に要素を削除してからPOST
-
return trueとreturn falseの用...
-
value内に変数を入れたい
-
onchangeイベントを強制的に発...
-
Selectボックスの幅を自動で広...
-
画面表示とともにtableの指定の...
-
jQuery セレクトボックスで選択...
-
背景色を変えて未入力チェック...
-
<input>の選択肢をプルダウンメ...
-
tabindexの取得
-
プルダウン 項目が多いので先頭...
-
JQuery selectが反映されない
-
チェックボックスのON/OFFでVal...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptでASPにデータを渡す
-
指定したタグを書き換えるには?
-
1つのページにformを2つ設置。2...
-
submitした値を返したい
-
別ウィンドウへのsubmitの挙動...
-
ファイル選択と同時にアップロ...
-
1つのform内に2つのsubmitボタ...
-
ページを再読み込み後、再読み...
-
formのsubmitイベントの発生に...
-
FormのonsubmitでJavaスクリプ...
-
iframe内のformをサブミットす...
-
タブキーでなくエンターキーで...
-
リンク先アドレスの一部にテキ...
-
input type="image"の時、enter...
-
別窓ウィンドウから親ウィンド...
-
submitボタン押下後、disabled...
-
C# 配列などの受け渡し
-
javascriptで .jpg , .jpeg , ....
-
XMLHttpRequestを利用してPHPへ...
-
submitボタンを表示することな...
おすすめ情報
<script>
// ページ読み込み時にCookieからデータを復元
window.onload = function () {
let savedInput = getCookie('savedInput');
if (savedInput) {
document.getElementById('output').textContent = savedInput;
}
};
// フォーム送信時に入力データをCookieに保存
(文字数オーバーなので続く)
このように修正したのですが、改善しません。どうしてでしょうか。教えていただきたいです。
document.getElementById('form').onsubmit = function (event) {
event.preventDefault();
let inputForm = document.getElementById('form').content.value;
let fontsize = document.getElementById('form').fontsz.value;
document.getElementById('output').style.fontSize = fontsize + 'px';
(文字数オーバーなので続く)
document.getElementById('output').textContent = inputForm.replace(/\n/g, "\n");
setCookie('savedInput', inputForm, 365); // 365日間保存
};
// Cookieにデータを書き込む関数
function setCookie(c_name, value, expiredays) {
let exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
(文字数オーバーなので続く)
document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
}
// Cookieからデータを読み取る関数
function getCookie(c_name) {
if (document.cookie.length > 0) {
let c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
(文字数オーバーなので続く)
c_start = c_start + c_name.length + 1;
let c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
</script>