Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to edit this function to make 3 things instead of 2

I use this function with cache to make if the user enter the site for first time in last
x minutes redirect him and if this is the second time press the button i now want to add if this is the third time in last x minutes to do another thing.

function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(";").shift();
}

function setLastAccess() {
  const date = new Date();
  const expireMs = 0.5 * 60 * 1000; // number of minutes
  date.setTime(date.getTime() + expireMs);
  document.cookie = `lastAccess=${new Date().getTime()};expires=${date.toUTCString()};path=/`;
}

if (!getCookie('lastAccess')) {
  window.location.href = "http://google.com";
  setLastAccess(); // set your last access at the end
} else {
  setTimeout(function() {
    document.getElementById('button-login').click();
  }, 1000);
}

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

You can maintain a counter in localStorage whenever user access the site, and update it. Check for the count and if it is 3, run your logic.

You can also store it in cookie if it needs to be transferred to server.

function getCookie(name) {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length === 2) return parts.pop().split(";").shift();
}

function setLastAccess() {
  const date = new Date();
  const expireMs = 0.5 * 60 * 1000; // number of minutes
  date.setTime(date.getTime() + expireMs);
  document.cookie = `lastAccess=${new Date().getTime()};expires=${date.toUTCString()};path=/`;
}

function numAccess() {
  if(!localStorage.getItem('accessCount')) {
    localStorage.setItem('accessCount', '1');
  } else {
    localStorage.setItem(+localStorage.getItem('accessCount') + 1)
  }
}

if (!getCookie('lastAccess')) {
  window.location.href = "http://google.com";
  setLastAccess(); // set your last access at the end
  numAccess();
} else {
  setTimeout(function() {
    numAccess();
    document.getElementById('button-login').click();
  }, 1000);
}

if(+localStorage.getItem('accessCount') === 3) {
  // Do some stuff
}

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading