/
RoditelevVV
/
web-static-labs
Обзор
Документация
Войти
/
RoditelevVV
/
web-static-labs
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
html/lab6/task2/script.js
84 строки
3 KB
karpov
finish lab5, proba lab6
19 мар 2026, 17:02
19 мар 2026, 17:02
e0606a0
Код
Авторство
О чём код?
'use strict'; // API ключ OpenWeatherMap (зарегистрируйтесь и получите свой) let API_KEY = 'f4678d1c51fe1b76dd3505fd0d173704'; // Замените на реальный ключ let cookieBanner = document.getElementById('cookieBanner'); let acceptBtn = document.getElementById('acceptCookies'); let rejectBtn = document.getElementById('rejectCookies'); let cityInput = document.getElementById('cityInput'); let getWeatherBtn = document.getElementById('getWeather'); let weatherCard = document.getElementById('weatherCard'); let cityName = document.getElementById('cityName'); let temperature = document.getElementById('temperature'); let description = document.getElementById('description'); let humidity = document.getElementById('humidity'); let wind = document.getElementById('wind'); let source = document.getElementById('source'); // Проверяем, согласен ли пользователь на cookie if (Cookies.get('cookieConsent') === 'accepted') { cookieBanner.style.display = 'none'; loadSavedCity(); } else if (Cookies.get('cookieConsent') === 'rejected') { cookieBanner.style.display = 'none'; } else { cookieBanner.style.display = 'flex'; } acceptBtn.addEventListener('click', function() { Cookies.set('cookieConsent', 'accepted', { expires: 365, path: '/' }); cookieBanner.style.display = 'none'; loadSavedCity(); }); rejectBtn.addEventListener('click', function() { Cookies.set('cookieConsent', 'rejected', { expires: 365, path: '/' }); cookieBanner.style.display = 'none'; Cookies.remove('lastCity'); }); function loadSavedCity() { let lastCity = Cookies.get('lastCity'); if (lastCity) { cityInput.value = lastCity; getWeather(lastCity); } } getWeatherBtn.addEventListener('click', function() { let city = cityInput.value.trim(); if (city === '') { alert('Введите город'); return; } if (Cookies.get('cookieConsent') === 'accepted') { Cookies.set('lastCity', city, { expires: 30, path: '/' }); } getWeather(city); }); async function getWeather(city) { try { let response = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${API_KEY}&units=metric&lang=ru`); if (!response.ok) { throw new Error('Город не найден'); } let data = await response.json(); cityName.textContent = data.name; temperature.textContent = `Температура: ${Math.round(data.main.temp)}°C`; description.textContent = `Описание: ${data.weather[0].description}`; humidity.textContent = `Влажность: ${data.main.humidity}%`; wind.textContent = `Ветер: ${data.wind.speed} м/с`; source.textContent = 'Данные получены по API'; weatherCard.style.display = 'block'; } catch (error) { alert('Ошибка: ' + error.message); } }