Search History //search const searchBox = document.querySelector('.search'); const searchBtn = document.querySelector('.search-btn'); const searchBtnclose = document.querySelector('.search-close') const overlay = document.querySelector('.overlay') const htmlTag = document.documentElement; const searchInput = document.getElementById('searchinput'); const searchList = document.querySelector('.search-list'); const searchSuggest = document.querySelector('.search-suggestion'); function disableScroll() { scrollTop = window.pageYOffset || document.documentElement.scrollTop; scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; window.onscroll = function () { window.scrollTo(scrollLeft, scrollTop); }; } function enableScroll() { window.onscroll = function () {}; } searchBtn.addEventListener("click", (e) => { searchBox.classList.add('search__active'); overlay.classList.remove('hidden'); htmlTag.classList.add('overflow-hidden'); disableScroll(); _pt(e.currentTarget); }) searchBtnclose.addEventListener("click", (e) => { searchBox.classList.remove('search__active'); overlay.classList.add('hidden'); htmlTag.classList.remove('overflow-hidden'); enableScroll(); _pt(e.currentTarget); }) overlay.addEventListener("click", (e) => { if (overlay.classList.contains("hidden")) { return } searchBox.classList.remove('search__active'); overlay.classList.add('hidden'); htmlTag.classList.remove('overflow-hidden'); enableScroll(); }) // Debounce utility function useDebounce(callback, delay) { let timer; return function (...args) { clearTimeout(timer); timer = setTimeout(() => callback(...args), delay); }; } // DOM elements const suggestionsContainer = document.getElementById('suggestions'); // Fetch suggestions from Google's Suggest API async function fetchSuggestions(query) { try { const response = await fetch( `https://suggestqueries.google.com/complete/search?client=firefox&q=${encodeURIComponent(query)}` ); const data = await response.json(); return data[1]; // Suggestions array } catch (error) { console.error('Error fetching suggestions:', error); return []; } } function highlightKeyword(keyword, str) { const regex = new RegExp(`(${keyword})`, "gi"); // Case-insensitive match return str.replace(regex, "$1"); } // Render suggestions function renderSuggestions(suggestions, query) { suggestionsContainer.innerHTML = ''; // Clear previous suggestions if (suggestions.length === 0) { return; } let suggestionList = "" suggestions.forEach((suggestion) => { suggestionList += ` ${highlightKeyword(query, suggestion)} ` }); suggestionsContainer.innerHTML = suggestionList } function fetchSuggestionsJSONP(query, callback) { const script = document.createElement('script'); const callbackName = `jsonpCallback_${Date.now()}`; script.src = `https://suggestqueries.google.com/complete/search?client=chrome&q=${encodeURIComponent(query)}&callback=${callbackName}`; window[callbackName] = function (data) { callback(data[1], query); // Pass suggestions to callback delete window[callbackName]; // Clean up document.body.removeChild(script); // Remove script tag }; script.onerror = function () { console.error('Error fetching JSONP suggestions'); delete window[callbackName]; document.body.removeChild(script); }; document.body.appendChild(script); } // Debounced input handler const handleInput = useDebounce(async (event) => { const query = event.target.value.trim(); event.preventDefault(); if (query.length === 0) { searchList.classList.remove('hidden'); searchSuggest.classList.add('hidden'); return; } else { searchList.classList.add('hidden'); searchSuggest.classList.remove('hidden'); } const safeQuery = encodeURIComponent(query.toLowerCase()); fetchSuggestionsJSONP(safeQuery, (suggestions, query) => { renderSuggestions(suggestions, query); }); }, 200); // debounce delay value searchInput.addEventListener('keyup', handleInput); function setSearchKeywords(keywords) { document.cookie = `lastSearchKeyword=${encodeURIComponent(JSON.stringify(keywords))}; path=/`; } function getSearchKeywords() { const cookies = document.cookie.split('; '); for (let cookie of cookies) { let [name, value] = cookie.split('='); if (name === 'lastSearchKeyword') { return JSON.parse(decodeURIComponent(value)); } } return []; } let searchHistoryCookie = getSearchKeywords() if (!Array.isArray(searchHistoryCookie)) { searchHistoryCookie = [] } let searchHistoryList = ""; if (searchHistoryCookie.length > 0) { for (let i = 0; i ${searchHistoryCookie[i]} `; } } const elLastSearch = document.getElementById("cnnSearchHistory"); elLastSearch.innerHTML = searchHistoryList; Loading... $(document).ready(function() { detikConnectAutoLogin('10027', false, onLoginClient); }); function onLoginClient (data){ $('.loader').remove() const dcUrl = 'https://connect.detik.com/dashboard/'; document.dispatchEvent(new CustomEvent('login:client', { detail: data })); if (data.is_login) { $('#connectDetikAvatar').css({'background-image': `url(${data.avatar})`, 'background-size': '100% auto'}); $('#dropdown').append(` ${data.first_name} ${data.last_name} Keluar `); iFrameResize({ log: false }, '#alloCardIframe') } else { const loginUrl = `https://connect.detik.com/oauth/authorize?clientId=10027&redirectUrl=https%3A%2F%2Fwww.cnnindonesia.com%2Fauthorize%3Fu%3Dhttps%3A%2F%2Fwww.cnnindonesia.com%2Finternasional%2F20261013111636-110-1414703%2Fkualitas-udara-singapura-terus-memburuk-imbas-asap-karhutla&backURL=https%3A%2F%2Fwww.cnnindonesia.com%2Finternasional%2F20261013111636-110-1414703%2Fkualitas-udara-singapura-terus-memburuk-imbas-asap-karhutla`; $('#dropdown').append(` Daftar Masuk `); } } .verticalThumbnail { width: 100%; top: 0; left: 0; bottom: 0; object-fit: cover; transition: opacity 0.3s ease-in-out; } .video-detail-panel-content { opacity: 0; transform: translateY(50px); transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1), opacity 500ms cubic-bezier(0.22, 1, 0.36, 1); will-change: transform, opacity; backface-visibility: hidden; } .video-detail-panel-content.is-shown { opacity: 1; transform: translateY(0); } 25 VIDEO Kualitas Udara Singapura Terus Memburuk Imbas Asap Karhutla REUTERS CNN Indonesia Selasa, 13 Okt 2026 14:05 WIB Warga Singapura tetap beraktivitas di luar ruangan meski kabut asap akibat karhutla menyelimuti wilayah tersebut pada Selasa (13/10).Pemantauan kualitas udara IQAir mencatat indeks kualitas udara Singapura mencapai 194 sekitar pukul 11.00 waktu setempat.Angka tersebut menempatkan Singapura di antara kota besar dengan tingkat polusi udara tertinggi di dunia, setelah Lahore, Pakistan.Pemerintah Indonesia menyatakan kebakaran yang dipicu kondisi cuaca El Nino di Sumatra dan Kalimantan diperkirakan masih berlangsung hingga November.
Kualitas Udara Singapura Terus Memburuk Imbas Asap Karhutla
Artikel ini disajikan kembali secara informatif oleh Uhuy News dari jaringan kantor berita CNN Indonesia. Hak kekayaan intelektual naskah dan materi foto sepenuhnya merupakan milik penerbit resmi terkait.
Warta Terkait Lainnya
Lihat Semua Berita →VIDEO: KAI Daop 8 Surabaya Sesuaikan Tarif Khusus Sejumlah Relasi
Per Senin, 12 Oktober 2026, PT KAI Daerah Operasi 8 Surabaya memberlakukan penyesuaian tarif khusus yang berlaku untuk sejumlah relasi perjalanan kereta.
Beatkeepers Collective Edukasi Pelajar Jakarta CPR saat Henti Jantung
Beatkeepers Collective melatih pelajar di British School Jakarta tentang CPR dan AED, meningkatkan kesiapan hadapi henti jantung dan membangun kepercayaan diri.
Hillstate vs Hi Pass: Bukan Laga Mudah untuk Debut Megawati
Megawati Hangestri Pertiwi akan melakoni debut yang tidak mudah bersama Hyundai Hillstate saat melawan Hi Pass dalam pertandingan pertama Grup B Kovo Cup 2026.
Pria China Menang Lotre Rp588 M, Pakai Kostum Ogah Ketahuan Istri
Pria di China pernah memenangkan lotre dengan angka fantastis hingga 220 juta Yuan atau setara Rp588 miliar pada 2022 silam.