前提
XAMPPをダウンロードし、「localhost」を使用しWebプラウザで表示したのですが、クッキーの読み込み、保存が上手くいきません。
実現したいこと
リロードしても前回入力した情報が再現されるようにしたいです。
発生している問題・エラーメッセージ
Uncaught TypeError: Cannot set properties of null (setting 'innerHTML)
該当のソースコード
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>10日で覚えるJavaScript</title> <style> #wrapper{width: 380px;} ul{list-style-type: none; background: gold; padding: 4px;} </style> <script> window.addEventListener('load', function(event){ loadCookie(); var elem = document.getElementById('txt_name'); elem.addEventListener('change', saveCookie, false); elem = document.getElementById('txt_mail'); elem.addEventListener('change', saveCookie, false); } ,false); //クッキー読み込み function loadCookie(event){ var str = document.cookie; if(!str) return; document.getElementById('output').innerHTML= str; var sp1 = str.split(';'); for(var i=0; i<sp1.length; i++){ var s = sp1[i].replace(/\s/,' '); var sp2 = s.split('='); document.getElementById(sp2[0]).value= unescape(sp2[1]); } } //クッキー保存 function saveCookie(event){ var elem = event.currentTarget; document.cookie = elem.id + '=' + escape(elem.value); } </script> </head> <body> <div id="wrapper"> <h1>自動記憶</h1> <ul> <li><input type="text" id="txt_name" value="お名前"></li> <li><input type="text" id="txt_mail" value="メールアドレス"></li> </ul> </div> </body> </html>
試したこと
//クッキー読み込みの所にある(!str)の!を消したら、エラーは消えましたが、クッキーは保存されませんでした。
補足情報(FW/ツールのバージョンなど)
Visual Studio Code
回答2件
あなたの回答
tips
プレビュー