0

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);
}
Joe
  • 29,416
  • 12
  • 68
  • 88

1 Answers1

0

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
}

Kanishk Anand
  • 1,686
  • 1
  • 7
  • 16
  • thank you but i have one question please can you tell me if the user uses firefox browser how to make him redirected to a specific link on Google Chrome brwoser ? – Mohamed Ashraf Fahim Dec 17 '21 at 17:45
  • @MohamedAshrafFahim I don't think it is possible to do that. We can force users from one browser to other browser. More details : https://stackoverflow.com/questions/29235353/opening-one-browser-from-another-browser . You can however add a warning or prompt which tells users to open the link in Chrome. – Kanishk Anand Dec 17 '21 at 17:48