#javascript #html
#язык JavaScript #HTML
Вопрос:
Пожалуйста, я пытаюсь создать код JS для перенаправления пользователя, если это первый трафик за последние n минут, а если нет, просто нажмите кнопку на странице, и я написал сценарий для этого, но я просто не знаю, в каком состоянии находится состояние, если это первый трафик, так что кто-нибудь может помочь ? и если это невозможно, у кого-нибудь есть идея, как это сделать с помощью JS
if (condition) { window.location.href = "http://www.exapmle.com"; } else { document.getElementById('button-login').click(); }
Ответ №1:
Вы можете подойти к этому с помощью файлов cookie и установить дату истечения срока действия, но это может вести себя странно, так как некоторые браузеры/версии браузеров обрабатывают файлы cookie по-разному.
Если вы используете ванильный Javascript, отложите свой тег сценария (прочитайте о свойстве defer, если оно для вас новое), например так:
lt;script defer src="./myScriptFile.js"gt;lt;/scriptgt;
Проверьте наличие файла cookie, сделайте то, что вам нужно сделать, а затем установите его снова. Ваш файл сценария должен выглядеть следующим образом:
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 = 5 * 60 * 1000; // 5 minutes date.setTime(date.getTime() expireMs); document.cookie = `lastAccess=${new Date().getTime()};expires=${date.toUTCString()};path=/`; } if(!getCookie('lastAccess')) { // do what have you have to do when last access was before 5 minutes ago or it's the first access setLastAccess(); // set your last access at the end } else { // this will run when last access was not before 5 minutes ago }
Комментарии:
1. Во-первых, спасибо за вашу помощь и ваше время, но я хочу сообщить вам, что я использую код js в том же html-файле, а не во внешнем файле js, и я использую этот тег lt;тип сценария=»текст/javascript» gt;lt;тип сценария=»текст/javascript» gt;lt;/скриптgt; так что это проблема
2. возможно, вам придется поместить скрипт из lt;headgt; в lt;headgt;lt;bodygt; и проверить, есть ли какой-либо другой результат