慶應義塾大学のサイト模写をしていて、背景を白から黒に変更した際に、その状態をクッキーに保存し、背景が黒になった後は、ページを再読込しても、背景が黒の状態で読み込まれる、ということを実現したいです。
現時点でこのようなコードを書いています。
HTML
1<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script> 2 <script type="text/javascript" src="js/jquery.cookie-1.4.1.min.js"></script> 3 4<dl class="textSize list-inline text-right"> 5 <dt class="list-inline-item pb-1 align-bottom" ><small>文字<br>サイズ</small></dt> 6 <dd id="textLarge" class="list-inline-item border p-2 mr-0"><a href="#">拡大</a></dd> 7 <dd id="textNormal" class="textDefault list-inline-item border p-2"><a href="#">標準</a></dd> 8 <dt class="list-inline-item pb-1 align-items-center" ><small>背景変更</small></dt> 9 <dd class="list-inline-item border p-2 mr-0"><a id="black" href="#">黒</a></dd> 10 </dl> 11 12 <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-fQybjgWLrvvRgtW6bFlB7jaZrFsaBXjsOMm/tB9LTS58ONXgqbR9W8oWht/amnpF" crossorigin="anonymous"></script> 13 <script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script> 14 15 16 <script type="text/javascript" src="js/jquery.js"></script>
CSS
1.blackback,.blackback .dropdown:hover,.blackback .a-taisetu ,.tab-area .blackback *,.blackback.rec_infoarea *,.blackback .card-header, .header-menu .blackback *{ 2 background-color: black!important; 3 color: #fff!important; 4} 5.blackback li a{ 6 color: #fff!important; 7} 8.blackback .cl-dropdown-m li a:before, .blackback .card-body ::before{ 9 display: none; 10 11 }
jQuery (自分で作成したjquery.jsというファイルに記述しているコード)
1var $fblackback = $('.base,.header-menu,.nvb-colour,.dropdown-menu,.thr-dropdown-m,.taisetu-back,.for-purpose,.for-category,.tab-area,.nav-pills,.tab-content, .panel_area,.card-body,.admap_outer,.rec_infoarea,.access,.bottom-slider,.for-category ul,.card,#header-text'); 2 var $lfmandcb = $('.upper-h .uh-right dl dd a,.nav-link,.nav-link.active,.tcard .btn-link,.fp-item a'); 3 var $bluetowhf = $('li a,.link_list a'); 4 var $bblackc= $fblackback.hasClass('blackback'); 5 6 7 var cookie = Cookies.get("havingb"); 8 9 10 $(function(){ 11 if(cookie){ 12 $('#black').on('click',() => { 13 14 $fblackback.removeClass('blackback'); 15 $('#headerlogo').find('img').attr('src', '../img/logo_01.png'); 16 $("#black").text($("#black").text().replace("白", "黒")); 17 $lfmandcb.css('color','#212529'); 18 $bluetowhf.css('color','#007bff'); 19 20 / 21 22 } 23 24 )} 25 else{ 26 $('#black').on('click',() => { 27 $fblackback.addClass('blackback'); 28 $("#black").text($("#black").text().replace("黒", "白")); 29 $('#headerlogo').find('img').attr('src', '../img/blackverlogo.png'); 30 $lfmandcb.css('color','#fff'); 31 $bluetowhf.css('color','#fff'); 32 Cookies.set("havingb",$bblackc); 33 34 35 } 36 )}; 37 38 }); 39
実現したいこと
背景を黒にした後にその状態がクッキーに保存され、ページを再読込しても、背景黒のページが表示される。
背景変更ボタンを押すたびに、黒、白と背景が変更される。
発生している問題・エラーメッセージ
上記のjQueryのコードでは、機能ぜず、
jquery.js:24 Uncaught ReferenceError: Cookies is not defined.
というエラーメッセージが表示されます。
該当のソースコード
エラーの該当コードはこちらです。
jQuery
1 2 var cookie = Cookies.get("havingb"); 3
以前、
https://teratail.com/questions/9z0r0mp3inwyn6
で教えていただきましたが、Javascriptでのコードで自分が組んだコードと大きくかけ離れていたため、解決することができませんでした。すみません。
できれば、私が今回の質問に書いたコードをベースにご教授いただきますと助かります。
我儘言って本当に申し訳ありません。
どうぞ、よろしくお願いいたしますm(_ _)m