回答編集履歴

1

調整

2024/07/30 06:55

投稿

yambejp
yambejp

スコア116468

test CHANGED
@@ -3,17 +3,21 @@
3
3
  ```html
4
4
  <script src="https://cdn.jsdelivr.net/npm/js-cookie@rc/dist/js.cookie.min.js"></script>
5
5
  <script>
6
- const vaild=10;
6
+ const vaild=30;
7
7
  const expires=vaild/86400;
8
8
  window.addEventListener('DOMContentLoaded', ()=>{
9
- if (!Cookies.get("vaild")){
9
+ let finish=Cookies.get("finish");
10
+ if (!finish){
10
11
  dlg.showModal();
11
12
  dlg.addEventListener('close',()=>{
13
+ finish=(new Date()).getTime()+vaild*1000;
12
- Cookies.set("vaild",vaild,{expires});
14
+ Cookies.set("finish",finish,{expires});
13
15
  });
14
16
  }
15
17
  setInterval((function myfunc(){
18
+ let rest=(finish??0)-(new Date()).getTime();
19
+ if(rest<=0) rest=0;
16
- debug.textContent=Cookies.get("vaild")?"有効":"";
20
+ debug.textContent=((finish?rest:(vaild*1000))/1000).toFixed(3)
17
21
  return myfunc;
18
22
  })(),100);
19
23
  document.querySelector('.close').addEventListener('click',()=>dlg.close());
@@ -24,5 +28,7 @@
24
28
  <hr>
25
29
  <input type="button" value="close" class="close"></dialog>
26
30
  ```
31
+ ※ちょっと挙動がわかりづらかったので修正
27
- 画面に「有効」が表示されている間はダイアログは表示されません。
32
+ 画面に残り秒数が表示されている間はダイアログは表示されません。
33
+ 残りが0になった場合、リロードしてもあらたにページを開いてもダイアログが表示されます
28
- ダイアログを閉じてから10秒間有効にしてあります。
34
+ ダイアログを閉じてから30秒間有効にしてあります。