teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

yori

2019/05/16 09:48

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -43,4 +43,44 @@
43
43
  }
44
44
  return ret;
45
45
  };
46
- ````
46
+ ````
47
+
48
+ # より具体的に
49
+ ```javascript
50
+ <script>
51
+ window.addEventListener('DOMContentLoaded', function(e){
52
+ console.log(document.cookie);
53
+ document.querySelector('#hoge').value=getCookie("hoge");
54
+ document.querySelector('#set').addEventListener('click',function(e){
55
+ var d=new Date();
56
+ d.setSeconds(d.getSeconds()+5);
57
+ setCookie("hoge",document.querySelector('#hoge').value,d);
58
+ });
59
+ });
60
+ function setCookie(key,val,expiredate){
61
+ var tmp = key+"="+escape(val)+";";
62
+ var expires="";
63
+ if(expiredate){
64
+ expires=" expires="+expiredate.toGMTString();
65
+ }else{
66
+ expires= " expires=Fri, 31 Dec 2030 23:59:59 GMT;";
67
+ }
68
+ console.log(expires);
69
+ tmp += expires;
70
+ document.cookie = tmp;
71
+ };
72
+ function getCookie(key){
73
+ var params = document.cookie.split(/; */);
74
+ var ret="";
75
+ for(var i=0;i<params.length;i++){
76
+ if(r=params[i].match(new RegExp("^"+key+"="+"(.*)"))){
77
+ ret=r[1];
78
+ }
79
+ }
80
+ return ret;
81
+ };
82
+ </script>
83
+
84
+ <input type="text" name="hoge" value="" id="hoge">
85
+ <input type="button" value="set" id="set">
86
+ ```

2

chousei

2019/05/16 09:48

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -30,7 +30,6 @@
30
30
  }else{
31
31
  expires= " expires=Fri, 31 Dec 2030 23:59:59 GMT;";
32
32
  }
33
- console.log(expires);
34
33
  tmp += expires;
35
34
  document.cookie = tmp;
36
35
  };

1

sample

2019/05/16 09:15

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -7,4 +7,41 @@
7
7
  ```
8
8
  expires=Fri, 31-Dec-2030 23:59:59;
9
9
  ```
10
- になっています。
10
+ になっています。
11
+
12
+ # sample
13
+ このサンプルで3秒間だけhogeの値に123が表示されますか?
14
+ 私の環境だとIE5エミュレータでも動きますけど
15
+ ```javascript
16
+ var d=new Date();
17
+ d.setSeconds(d.getSeconds()+4);
18
+ setCookie("hoge",123,d);
19
+ var count=0;
20
+ var timerId=setInterval(function(){
21
+ console.log(count+":hoge="+getCookie("hoge"));
22
+ if(++count>5) clearInterval(timerId);
23
+ },1000);
24
+
25
+ function setCookie(key,val,expiredate){
26
+ var tmp = key+"="+escape(val)+";";
27
+ var expires="";
28
+ if(expiredate){
29
+ expires=" expires="+expiredate.toGMTString();
30
+ }else{
31
+ expires= " expires=Fri, 31 Dec 2030 23:59:59 GMT;";
32
+ }
33
+ console.log(expires);
34
+ tmp += expires;
35
+ document.cookie = tmp;
36
+ };
37
+ function getCookie(key){
38
+ var params = document.cookie.split(/; */);
39
+ var ret=null;
40
+ for(var i=0;i<params.length;i++){
41
+ if(r=params[i].match(new RegExp("^"+key+"="+"(.*)"))){
42
+ ret=r[1];
43
+ }
44
+ }
45
+ return ret;
46
+ };
47
+ ````