Как на веб-странице реализовать автоматический редирект в новой вкладке браузера после загрузки страницы с использованием куки для ограничения этого действия один раз в 24 часа для каждого уникального пользователя? <br/> <code>setTimeout(function(){window.open("ya.ru")},1000)</code>
Для реализации ограничения на редирект один раз в 24 часа для каждого уникального пользователя, можно использовать JavaScript и куки. Вот пример кода, который будет выполнять редирект в новой вкладке браузера после загрузки страницы, но только один раз в 24 часа для каждого пользователя: ```html <!DOCTYPE html> <html> <head> <title>Редирект с ограничением</title> </head> <body> <script> // Функция для проверки наличия куки function getCookie(name) { var value = "; " + document.cookie; var parts = value.split("; " + name + "="); if (parts.length == 2) return parts.pop().split(";").shift(); } // Проверяем, был ли уже выполнен редирект if (!getCookie("redirected")) { // Выполняем редирект setTimeout(function() { window.open("https://ya.ru"); // Устанавливаем куку на 24 часа var now = new Date(); var time = now.getTime(); time += 24 * 60 * 60 * 1000; // 24 часа now.setTime(time); document.cookie = "redirected=true; expires=" + now.toUTCString() + "; path=/"; }, 1000); } </script> </body> </html> ``` Этот код сначала проверяет наличие куки с именем "redirected". Если такой куки нет, то выполняется редирект на страницу "https://ya.ru" через 1 секунду. После успешного редиректа устанавливается куки с именем "redirected" на 24 часа. Таким образом, каждый пользователь будет видеть редирект только один раз в течение 24 часов.
function setCookie(name, value, days) { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); const expires = "; expires=" + date.toUTCString(); document.cookie = `${name}=${value || ""}${expires}; path=/`; } function getCookie(name) { const nameEQ = `${name}=`; const cookies = document.cookie.split(';'); for (const cookie of cookies) { let c = cookie.trim(); if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length); } return null; } function checkRedirect() { const lastRedirect = getCookie("lastRedirect"); const now = Date.now(); if (!lastRedirect || now - parseInt(lastRedirect) > 24 * 60 * 60 * 1000) { setCookie("lastRedirect", now, 1); setTimeout(() => { window.open("https://ya.ru", "_blank"); }, 1000); } } window.addEventListener('load', checkRedirect);