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%2Ftv%2F20261014083455-400-1415064%2Fvideo-batam-pulau-bintan-lumpuh-akibat-listrik-mati-total&backURL=https%3A%2F%2Fwww.cnnindonesia.com%2Ftv%2F20261014083455-400-1415064%2Fvideo-batam-pulau-bintan-lumpuh-akibat-listrik-mati-total`; $('#dropdown').append(` Daftar Masuk `); } } CNN TV Live Program Anchor Home CNN Indonesia Today Detail VIDEO: Batam-Pulau Bintan Lumpuh akibat Listrik Mati Total CNN Indonesia TV | CNN Indonesia Rabu, 14 Okt 2026 08:38 WIB var article = { idnews : 1415064, idkanal : 400 } var baseurl = 'https://www.cnnindonesia.com/tv/20261014083455-400-1415064/video-batam-pulau-bintan-lumpuh-akibat-listrik-mati-total'; getScript("https://cdn.detik.net.id/libs/sharebox/js/shareBox.js?v=2026101409", function(){ waitUntil( function () { return typeof shareBox === 'object' && typeof shareBox.run === 'function'; }, // kondisi function () { shareBox.run($('.share-top-new')); shareBox.countComment($('.sh-komentar')); }, // aksi 10000 // max 10 detik ); }) Bagikan: URL berhasil disalin Jakarta, CNN Indonesia -- Pemadaman listrik secara total di Batam dan Pulau Bintan, Kepulauan Riau, sejak Senin, 12 Oktober, membuat semua aktivitas terganggu. Sejumlah jalanan di Batam dan Pulau Bintan macet akibat lalu lintas terganggu. Bahkan, antrean panjang terjadi di SPBU lantaran warga mengisi BBM untuk menghidupkan mesin genset di rumah.
VIDEO: Batam-Pulau Bintan Lumpuh akibat Listrik Mati Total
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 →
Honda PCX160 Kini Dijual di Malaysia, Lebih Mahal Rp15 Jutaan dari RI
Honda PCX160 dijual di Malaysia RM12.998 atau sekitar Rp56,9 juta, lebih mahal dari PCX160 RoadSync di Indonesia yang dibanderol Rp41,6 juta.
FOTO: Cahaya Aurora Menari di Langit Finlandia
Aurora berwarna merah dan hijau menerangi langit Rovaniemi, Finlandia, dengan intensitas terkuat sejak badai geomagnetik serupa pada Januari 2026.
Hacker Bobol Sistem Pendingin Supermarket di Prancis, Makanan Busuk
Peretas membobol sistem pendingin ratusan supermarket di Prancis hingga suhu lemari es dan freezer naik mencapai 50 derajat Celsius.
Rupiah Loyo ke Level Rp17.914 per Dolar AS Pagi Ini
Analis meramal rupiah akan bergerak konsolidatif dengan kecenderungan melemah terbatas pada perdagangan hari ini.