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%2F20261011164625-124-1414139%2Fprabowo-indonesia-mesir-sepakat-lanjutkan-dukung-perjuangan-palestina&backURL=https%3A%2F%2Fwww.cnnindonesia.com%2Finternasional%2F20261011164625-124-1414139%2Fprabowo-indonesia-mesir-sepakat-lanjutkan-dukung-perjuangan-palestina`; $('#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 Prabowo: Indonesia-Mesir Sepakat Lanjutkan Dukung Perjuangan Palestina Sekretariat Presiden CNN Indonesia Minggu, 11 Okt 2026 17:25 WIB Presiden Prabowo Subianto mengatakan Indonesia dan Mesir sepakat melanjutkan dukungan terhadap perjuangan rakyat Palestina.Kedua negara juga berkomitmen mendorong proses perdamaian serta memberikan bantuan kemanusiaan, termasuk untuk pemulihan dan rekonstruksi Gaza.Hal tersebut disampaikan Prabowo dalam pernyataan pers bersama Presiden Mesir Abdel Fattah el-Sisi di Istana Negara, Jakarta, Minggu (11/10).Ia mengatakan kedua negara memiliki keprihatinan yang sama terhadap kekerasan dan pelanggaran hukum internasional di Palestina.Menurut Prabowo, solusi dua negara merupakan satu-satunya jalan untuk mencapai perdamaian di kawasan tersebut.Indonesia dan Mesir juga sepakat melanjutkan kontribusi dalam mendorong proses perdamaian serta memberikan bantuan kemanusiaan bagi Palestina, termasuk untuk pemulihan dan rekonstruksi Gaza.
Judul Berita
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 →Melihat Sirkuit Pertamina Mandalika dari Bukit 360
Bukit 360 menjadi lokasi strategis untuk menyaksikan Indonesia GP 2026 di Sirkuit Pertamina Mandalika.
FOTO: Kick Off Anyer-Panarukan 3R
Bupati Serang Ratu Rachmatuzakiyah dan Bupati Situbondo Yusuf Rio Wahyu Prayogo resmi meluncurkan program Anyer-Panarukan 3R bersama Menteri Desa Yandri Susanto
Mirip Sariawan, Kenali Apa Itu Mukokel dan Bisakah Sembuh Sendiri?
Sering dikira sariawan, ada kondisi lain di mulut yang disebut mucocele (mukokel). Jika tak kunjung kempis, kamu perlu konsultasi dengan dokter gigi.
VIDEO: Laporan Terkini Pertamina Grand Prix of Indonesia 2026
Kita sudah terhubung dengan Anchor CNN Indonesia, Alby Pratama, di Mandalika, Lombok Tengah