一応sample
javascript
1<style>
2.red{color:red}
3</style>
4<script>
5function setCookie(key,val){
6 tmp = key+"="+escape(val)+";";
7 tmp += "expires=Fri, 31-Dec-2030 23:59:59;";
8 document.cookie = tmp;
9};
10function getCookie(key){
11 var params = document.cookie.split(/; */);
12 var ret=null;
13 for(var i=0;i<params.length;i++){
14 if(r=params[i].match(new RegExp("^"+key+"="+"(.*)"))){
15 ret=r[1];
16 }
17 }
18 return ret;
19};
20
21function delCookie(key){
22 expiredate = new Date();
23 expiredate.setYear(expiredate.getYear()-1);
24 tmp = key+"=;";
25 tmp += "expires="+expiredate.toGMTString();
26 document.cookie = tmp;
27};
28window.addEventListener('DOMContentLoaded',function(){
29 var t=document.querySelector('#hoge');
30 document.querySelector('#set').addEventListener('click',function(e){
31 setCookie('red',1);
32 });
33 document.querySelector('#check').addEventListener('click',function(e){
34 console.log(getCookie('red'));
35 });
36 document.querySelector('#change').addEventListener('click',function(e){
37 document.querySelector('#hoge').classList.add('red');
38 });
39 var mo = new MutationObserver(function(r){
40 delCookie("red");
41 });
42 const opt = {
43 attributes: true,
44 attributeFilter:['class'],
45 };
46 mo.observe(t, opt);
47});
48</script>
49<div id="hoge">hoge</div>
50<input type="button" id="set" value="set">
51<input type="button" id="check" value="check">
52<input type="button" id="change" value="change">
手順
- checkボタンを押すとredというcookieに値がないのでnullが返る
- setボタンを押すとcookie:redに1が入る
- checkボタンを押すと1が返る
- 一度ページをリロードしてもcheckを押すと1が返る
※ここまでcookieの基本
- changeボタンを押すと#hogeにclass=redが追加される
- そこでmoが発動し、cookie:redを削除
- setをおしてもnullが返る