【99OK】 Link vào 99OK Casino mới nhất 2025 ✔️

Link 99OK hot nhất

99OK - Nhà Cái Thể Thao, Nổ Hũ, Bắn Cá Uy Tín

Thứ sáu, 22/08/2025, 19:16 (GMT+7)
4320 lượt xem

Giây phút lần đầu người con miền Nam diễu binh qua lăng Bác

(QK7 Online) - Sau nhiều tháng 123Win64 nhà cái WC 2026, vượt qua những thử thách khắc nghiệt, 3 khối diễu binh của ĐĂNG NHẬP 99OK COM TẶNG 99K đã hoàn thành tốt nhiệm vụ trong buổi tổng hợp luyện đầu tiên tại Quảng trường Ba Đình. Khoảnh khắc những người lính miền Đông, những người con miền Nam lần đầu tiên diễu binh qua Lăng Chủ tịch Hồ Chí Minh đã để lại nhiều cảm xúc thiêng liêng, tự hào.
20 giờ ngày 21/8, tại Quảng trường Ba Đình, TP Hà Nội diễn ra buổi tổng hợp luyện diễu binh, diễu hành trong Lễ kỷ niệm 80 năm Cách mạng Tháng Tám thành công và Quốc khánh nước Cộng hòa xã hội chủ nghĩa Việt Nam.
Tổng hợp luyện diễu binh, diễu hành được tổ chức với quy mô tương đương lễ chính thức, với sự tham gia của các khối diễu binh, diễu hành và các lực lượng phục vụ.
43 khối đại diện lực lượng vũ trang 123Win com 79 nạp - rút nhanh, trong đó có 26 khối do quân đội đảm nhiệm và 17 khối do Bộ Công an đảm nhiệm.
Khối Quân đội 123Win com 79 nạp - rút nhanh Lào tham gia tổng hợp luyện.
Khối diễu binh thuộc Các lực lượng vũ trang Liên bang Nga.
Khối Quân đội Hoàng gia Campuchia tham gia buổi tổng hợp luyện.

Khối nữ Chiến sĩ biệt động trong buổi tổng hợp luyện.
Khối nữ Du kích miền Nam trong buổi tổng hợp luyện.
Khối Chiến sĩ Đặc nhiệm dù.


Khối xe pháo quân sự ra đi qua Quảng trường Ba Đình.
Lê Tiến, Văn Giang

Bình luận

Bài viết tương tự:

Tự hào được tham gia diễu binh trong ngày Đại lễ

Tự hào được tham gia diễu binh trong ngày Đại lễ

13:29 25/08/2025

(QK7 Online) - Được diễu binh tại Quảng trường Ba Đình, trước Lăng Chủ tịch Hồ Chí Minh không chỉ là ước mơ mà còn là niềm tự hào của mỗi quân nhân. Đó cũng là ánh mắt dõi theo đầy tin yêu của gia đình, của đơn vị công tác. Chỉ còn ít ngày nữa, hoạt động diễu binh, diễu hành tại Lễ kỷ niệm 80 năm Quốc khánh 2/9 sẽ diễn ra, trong hơn 16 ngàn cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số tham gia có những người con gái miền Nam vinh dự góp mặt.

Bộ Quốc phòng trao Quyết định Phó Tư lệnh và thăng Quân hàm Thiếu tướng đối với các đồng chí cán bộ cao cấp thuộc Quân khu 7

99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao trao Quyết định Phó Tư lệnh và thăng Quân hàm Thiếu tướng đối với các đồng chí cán bộ cao cấp thuộc ĐĂNG NHẬP 99OK COM TẶNG 99K

08:57 25/08/2025

(QK7 Online) – Ngày 22/8, tại Hà Nội, 99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao tổ chức Lễ công bố, trao Quyết định về công tác cán bộ. Đại tướng Phan Văn Giang, Ủy viên Bộ 99Oke123 Tải ứng dụng, Phó Bí thư Quân ủy Trung ương, Bộ trưởng 99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao dự và trao Quyết định.

Đồng Nai huy động trên 100 cán bộ, chiến sĩ giúp dân khắc phục hậu quả thiên tai

Đồng Nai huy động trên 100 cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số giúp dân khắc phục hậu quả 99Ok là nhà cái cá cược uy tín hàng đầu tại Việt Nam

18:33 21/08/2025

(QK7 Online) - Ngày 21/8, Đại tá Võ Thành Danh, Ủy viên Ban Thường vụ Tỉnh ủy, Chỉ huy trưởng Bộ Chỉ huy quân sự tỉnh Đồng Nai thông tin, tình hình mưa bão diễn biến phức tạp trong đêm 20/8 đến sáng 21/8 ở các xã trong tỉnh, nhất là các xã nằm trong địa bàn 123Win99ok Sân chơi uy tín 99Ok 123Win phiên bản mới khu vực (PTKV) 1, 2, 3, 4. Trong đó, khu vực 3, 4 mưa nhẹ còn chủ yếu thiệt hại nặng do mưa lớn kéo dài ở các xã trên địa bàn 123Win99ok Sân chơi uy tín PTKV 1 và 2.

M.123Win30.com phiên bản mới và phát triển bền vững tiềm lực quốc phòng Thành phố Hồ Chí Minh trong thời kỳ mới

Xây dựng và phát triển bền vững tiềm lực 99Ok68 link đăng nhập Thành phố Hồ Chí Minh trong thời kỳ mới

12:27 21/08/2025

(QK7 Online) - Xây dựng và phát triển bền vững tiềm lực 99Ok68 link đăng nhập là một trong những nhiệm vụ trọng tâm, cấp bách, có ý nghĩa chiến lược đối với sự nghiệp xây dựng và bảo vệ Tổ quốc. Đối với Thành phố Hồ Chí Minh, việc xây dựng và phát triển tiềm lực 99Ok68 link đăng nhập bền vững càng có ý nghĩa đặc biệt quan trọng. Thiếu tướng Lê Xuân Thế, Tư lệnh ĐĂNG NHẬP 99OK COM TẶNG 99K, Thành viên chính Ban chủ nhiệm nhiệm vụ phát biểu tại Hội nghị giám định nhiệm vụ nghiên cứu khoa học và công nghệ “Xây dựng và phát triển bền vững tiềm lực 99Ok68 link đăng nhập Thành phố Hồ Chí Minh trong thời kỳ mới”.

Tổng hợp luyện lần thứ tư các khối diễu binh, diễu hành A80

Tổng hợp luyện lần thứ tư các khối diễu binh, diễu hành A80

00:34 17/08/2025

(QK7 Online) - Ngày 16/8, tại Trung tâm 123Win64 nhà cái WC 2026 Quân sự quốc gia 4 (xã Phúc Sơn, TP. Hà Nội), các lực lượng tham gia diễu binh, diễu hành trong Lễ kỷ niệm 80 năm Cách mạng Tháng Tám thành công và Quốc khánh 2/9 bước vào đợt tổng hợp luyện tập lần thứ tư dưới cơn mưa nặng hạt. Đại tướng Phan Văn Giang, Ủy viên Bộ 99Oke123 Tải ứng dụng, Phó Bí thư Quân ủy Trung ương, Bộ trưởng 99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao chủ trì kiểm tra.

Hình ảnh ấn tượng trong Đại hội đại biểu Đảng bộ Quân khu 7 lần thứ XI, nhiệm kỳ 2025 - 2030

Hình ảnh ấn tượng trong Đại hội đại biểu 123 Win 88ok trang chủ chính thức ĐĂNG NHẬP 99OK COM TẶNG 99K lần thứ XI, nhiệm kỳ 2025 - 2030

23:06 15/08/2025

(QK7 Online) -Sau 2,5 ngày làm việc khẩn trương, nghiêm túc, dân chủ và đầy trách nhiệm, Đại hội đại biểu 123 Win 88ok trang chủ chính thức ĐĂNG NHẬP 99OK COM TẶNG 99K lần thứ XI, nhiệm kỳ 2025 – 2030 đã hoàn thành toàn bộ nội dung, chương trình đề ra; thực sự là đợt sinh hoạt chính trị mẫu mực, tiêu biểu, trí tuệ, đổi mới, để lại nhiều dấu ấn sâu đậm và thành công tốt đẹp. Báo ĐĂNG NHẬP 99OK COM TẶNG 99K trân trọng giới thiệu những hình ảnh ấn tượng tại Đại hội.

Thiếu tướng Trần Vinh Ngọc, Chính ủy Quân khu 7 được bầu giữ chức Bí thư Đảng ủy Quân khu 7 nhiệm kỳ 2025 - 2030

Thiếu tướng Trần Vinh Ngọc, Chính ủy ĐĂNG NHẬP 99OK COM TẶNG 99K được bầu giữ chức Bí thư Đảng ủy ĐĂNG NHẬP 99OK COM TẶNG 99K nhiệm kỳ 2025 - 2030

15:42 15/08/2025

(QK7 Online) – Sau 2,5 ngày làm việc khẩn trương, nghiêm túc, dân chủ và trách nhiệm, Đại hội đại biểu 123 Win 88ok trang chủ chính thức ĐĂNG NHẬP 99OK COM TẶNG 99K lần thứ XI, nhiệm kỳ 2025 - 2030 đã hoàn thành nội dung, chương trình đề ra, thực sự mẫu mực, tiêu biểu, trí tuệ, đổi mới và thành công tốt đẹp.

TIN XEM NHIỀU:

TIN MỚI:

DƯ LUẬN QUAN TÂM:

99OK - Nhà Cái Thể Thao, Nổ Hũ, Bắn Cá Uy Tín

Theo dõi chúng tôi tại:

Cơ quan chủ quản: ĐĂNG NHẬP 99OK COM TẶNG 99K

Giấy phép số 45-YU ngày 28/07/2021

© Báo ĐĂNG NHẬP 99OK COM TẶNG 99K điện tử giữ bản quyền nội dung trên website này.

Tòa soạn: 81A Hai Bà Trưng, Quận 1, TP. Hồ Chí Minh

Phụ trách Tổng Biên tập: Thượng tá Lại Thế Hiền

Email: [email protected] | [email protected] | 1

'); printWindow.document.write(''); printWindow.document.write(''); printWindow.document.write('

【99OK】 Link vào 99OK Casino mới nhất 2025 ✔️

Link 99OK hot nhất

'); // Add logo at the top printWindow.document.write(''); printWindow.document.write('

' + title + '

'); if (dateTime) { printWindow.document.write('
' + dateTime + '
'); } printWindow.document.write('
'); printWindow.document.write(content.html()); printWindow.document.write('
'); printWindow.document.write(''); printWindow.document.write(''); printWindow.document.close(); $('#printLoadingMsg').remove(); // Wait for content and images to load then print printWindow.onload = function() { // Additional check to ensure logo is loaded const logoImg = printWindow.document.querySelector('.print-logo img'); if (logoImg) { logoImg.onload = function() { setTimeout(function() { printWindow.print(); printWindow.close(); }, 300); }; // If logo already loaded (cached) if (logoImg.complete) { setTimeout(function() { printWindow.print(); printWindow.close(); }, 300); } } else { setTimeout(function() { printWindow.print(); printWindow.close(); }, 500); } }; } if (totalImages > 0) { lazyImages.forEach(function(img) { const actualSrc = img.dataset.src || img.getAttribute('data-src'); if (actualSrc && actualSrc !== img.src) { const tempImg = new Image(); tempImg.onload = tempImg.onerror = function() { img.src = actualSrc; img.classList.remove('lazy'); loadedCount++; if (loadedCount === totalImages) { proceedWithPrint(); } }; tempImg.src = actualSrc; } else { loadedCount++; if (loadedCount === totalImages) { proceedWithPrint(); } } }); } else { proceedWithPrint(); } } document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.image-caption').forEach(el => { if (el.textContent.trim() === 'Nhập chú thích cho ảnh...') { el.style.display = 'none'; } }); }); $(document).ready(function () { // Stop any ongoing speech when page loads and reset TTS state if (window.speechSynthesis) { window.speechSynthesis.cancel(); } // Dictionary để chuyển đổi từ viết tắt const abbreviationDict = { 'LLVT': 'lực lượng vũ trang', 'CHQS': 'chỉ huy quân sự', 'HĐND': 'hội đồng 123Win com 79 nạp - rút nhanh', 'CHXHCN': 'Cộng hòa xã hội chủ nghĩa', 'VKTBKT': 'vũ khí trang bị kỹ thuật', 'UBND': 'ủy ban 123Win com 79 nạp - rút nhanh', 'MTTQ': 'mặt trận tổ quốc', 'ĐCSVN': 'Đảng Cộng sản Việt Nam', 'TNXP': 'thanh niên xung phong', 'BĐBP': 'bộ đội biên phòng', 'CAND': 'công an 123Win com 79 nạp - rút nhanh', 'QĐND': 'quân đội 123Win com 79 nạp - rút nhanh', 'TPHCM': 'Thành phố Hồ Chí Minh', 'TP.HCM': 'Thành phố Hồ Chí Minh', 'HN': 'Hà Nội', 'DN': 'Đà Nẵng', 'ĐBQH': 'đại biểu quốc hội', 'QH': 'quốc hội', 'CP': 'chính phủ', 'TW': 'trung ương', 'BCH': 'ban chấp hành', 'BTV': 'ban thường vụ', 'UV': 'ủy viên', 'PBT': 'phó bí thư', 'BT': 'bí thư', 'CT': 'chủ tịch', 'PCT': 'phó chủ tịch', 'TTg': 'thủ tướng', 'PTTg': 'phó thủ tướng', 'CNQ': 'cộng hòa 123Win com 79 nạp - rút nhanh', 'CHDC': 'cộng hòa dân chủ' }; // Hàm xử lý từ viết tắt function processAbbreviations(text) { let processedText = text; // Duyệt qua tất cả các từ viết tắt trong dictionary for (const [abbr, fullForm] of Object.entries(abbreviationDict)) { // Tạo regex để tìm từ viết tắt (case insensitive) // \b đảm bảo match whole word, không match partial const regex = new RegExp(`\\b${abbr}\\b`, 'gi'); processedText = processedText.replace(regex, fullForm); } return processedText; } // Reset TTS control buttons to initial state $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); $('#speedControls').removeClass('flex').addClass('hidden'); // Initialize Fancybox for article images $('.article-content img').each(function() { const $img = $(this); // const src = $img.attr('src').replace("/thumb/","/"); const src = $img.attr('src'); const alt = $img.attr('alt') || ''; // Wrap image with fancybox link $img.wrap(``); $img.addClass('cursor-pointer transition-transform hover:scale-105'); }); // Configure Fancybox $('[data-fancybox="gallery"]').fancybox({ buttons: [ "zoom", "slideShow", "thumbs", "close" ], loop: true, protect: true }); // Handle comment submission $("#comment-btn").click(function () { const userName = $('#UserName').val().trim(); const contentComment = $('#ContentComment').val().trim(); const userEmail = $('#UserEmail').val().trim(); // Hide any existing notifications $('#successNotification, #errorNotification').addClass('hidden'); if (userName === "" || contentComment === "") { $('#errorNotification').removeClass('hidden'); return; } // Validate email format if provided if (userEmail !== "" && !isValidEmail(userEmail)) { $('#errorNotification span').text('Email không hợp lệ!'); $('#errorNotification').removeClass('hidden'); return; } $.ajax({ url: "/ExtAppCommon/Home/Comment", type: "POST", dataType: "json", data: { id: 51280, name: userName, content: contentComment, email: userEmail }, success: function (result) { if (result > 0) { // Clear form $('#UserName').val(""); $('#ContentComment').val(""); $('#UserEmail').val(""); // Show success message $('#successNotification').removeClass('hidden'); // Hide success message after 3 seconds setTimeout(function() { $('#successNotification').addClass('hidden'); }, 3000); // Add new comment to the list const newComment = `
Avatar
${userName}
Vừa xong

${contentComment}

`; $('#commentsList').prepend(newComment); } else { $('#errorNotification span').text('Có lỗi xảy ra, vui lòng thử lại sau!'); $('#errorNotification').removeClass('hidden'); } }, error: function() { $('#errorNotification span').text('Có lỗi xảy ra, vui lòng thử lại sau!'); $('#errorNotification').removeClass('hidden'); } }); }); // Handle Enter key in textarea $('#ContentComment').keypress(function(e) { if (e.which === 13 && !e.shiftKey) { e.preventDefault(); $("#comment-btn").click(); } }); // Email validation function function isValidEmail(email) { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); } // Text-to-speech functionality const synth = window.speechSynthesis; let currentUtterance = null; let currentSpeed = 1; // Speed control functions function updateSpeedDisplay() { $('#speedDisplay').text(currentSpeed + 'x'); } $('#increaseSpeed').click(function() { if (currentSpeed < 2) { currentSpeed += 0.25; updateSpeedDisplay(); if (currentUtterance) { // Restart speech with new speed const text = currentUtterance.text; synth.cancel(); speak(text, currentSpeed); } } }); $('#decreaseSpeed').click(function() { if (currentSpeed > 0.5) { currentSpeed -= 0.25; updateSpeedDisplay(); if (currentUtterance) { // Restart speech with new speed const text = currentUtterance.text; synth.cancel(); speak(text, currentSpeed); } } }); // Function to get clean text content without button text function getCleanContent() { // Clone the content div to avoid modifying the original const contentClone = $('.article-content').clone(); // Remove all buttons and their container contentClone.find('button').parent('div').remove(); // Remove image captions (text in tags that are typically captions) contentClone.find('em').remove(); // Get clean text let cleanText = contentClone.text().trim(); // Remove "(QK7 Online)" and variations cleanText = cleanText.replace(/\(QK7\s*Online\)\s*[-–]?\s*/gi, ''); // Remove other common patterns that shouldn't be read cleanText = cleanText.replace(/\s+/g, ' '); // Replace multiple spaces with single space // Xử lý từ viết tắt cleanText = processAbbreviations(cleanText); return cleanText; } function getVietnameseVoice() { let voices = synth.getVoices(); // Filter for Vietnamese voices let vietnameseVoices = voices.filter(voice => voice.lang.includes('vi') || voice.name.toLowerCase().includes('vietnamese') || voice.name.toLowerCase().includes('việt') ); // If Vietnamese voices found, prefer Microsoft/Google voices if (vietnameseVoices.length > 0) { // Try to find Microsoft Vietnamese voice first let msVoice = vietnameseVoices.find(v => v.name.toLowerCase().includes('microsoft') && v.name.toLowerCase().includes('vietnamese') ); if (msVoice) return msVoice; // Then try Google Vietnamese voice let googleVoice = vietnameseVoices.find(v => v.name.toLowerCase().includes('google') && v.name.toLowerCase().includes('vietnamese') ); if (googleVoice) return googleVoice; // If no Microsoft/Google voice, use the first Vietnamese voice return vietnameseVoices[0]; } // If no Vietnamese voice found, return null return null; } function speak(text, rate = 1) { // Stop any ongoing speech if (synth.speaking) { synth.cancel(); } const utterance = new SpeechSynthesisUtterance(text); utterance.lang = 'vi-VN'; utterance.rate = rate; // Wait for voices to be loaded and try to set Vietnamese voice const setVoiceAndSpeak = () => { const vietnameseVoice = getVietnameseVoice(); if (vietnameseVoice) { utterance.voice = vietnameseVoice; currentUtterance = utterance; // Show/hide control buttons $('#pauseBtn, #stopBtn').removeClass('hidden'); $('#resumeBtn').addClass('hidden'); // Show speed controls $('#speedControls').removeClass('hidden').addClass('flex'); utterance.onend = function() { currentUtterance = null; $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); // Hide speed controls $('#speedControls').removeClass('flex').addClass('hidden'); }; synth.speak(utterance); } else { // If no Vietnamese voice available, show an error message alert('Không tìm thấy giọng đọc tiếng Việt trên thiết bị của bạn. Vui lòng cài đặt thêm giọng đọc tiếng Việt trong cài đặt hệ thống.'); } }; if (synth.getVoices().length === 0) { synth.addEventListener('voiceschanged', setVoiceAndSpeak, { once: true }); } else { setVoiceAndSpeak(); } } $('#readArticleBtn').click(function() { const title = $('h1.st37').clone() // Clone to avoid getting button text .children() // Get all child elements .remove() // Remove them .end() // Go back to h1 .text() // Get text content .trim(); // Remove whitespace const content = getCleanContent(); speak(title + ". " + content, currentSpeed); }); $('#pauseBtn').click(function() { if (synth.speaking) { synth.pause(); $(this).addClass('hidden'); $('#resumeBtn').removeClass('hidden'); } }); $('#resumeBtn').click(function() { if (synth.paused) { synth.resume(); $(this).addClass('hidden'); $('#pauseBtn').removeClass('hidden'); } }); $('#stopBtn').click(function() { if (synth.speaking) { synth.cancel(); currentUtterance = null; $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); // Hide speed controls $('#speedControls').removeClass('flex').addClass('hidden'); } }); // Stop speech when user navigates away from page $(window).on('beforeunload', function() { if (window.speechSynthesis && window.speechSynthesis.speaking) { window.speechSynthesis.cancel(); } }); // Stop speech when page visibility changes (user switches tabs) /* $(document).on('visibilitychange', function() { if (document.hidden && window.speechSynthesis && window.speechSynthesis.speaking) { window.speechSynthesis.cancel(); currentUtterance = null; $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); $('#speedControls').removeClass('flex').addClass('hidden'); } });*/ }); document.addEventListener("DOMContentLoaded", function () { var articleContainer = document.querySelector('.article-content.max-w-none.mb-4'); if (!articleContainer) { articleContainer = document.querySelector('[class*="article-content"][class*="max-w-none"][class*="mb-4"]'); } if (!articleContainer) { return; } var fallbackHost = "https://99oke123.com"; var lazyImages = []; // ✅ Hàm update Fancybox href khi ảnh load xong function updateFancyboxHref(img) { const $img = $(img); const $fancyboxLink = $img.parent('a[data-fancybox]'); if ($fancyboxLink.length > 0) { // Cập nhật href với src thực tế const realSrc = img.dataset.src || img.src; if (!realSrc.includes('loading_new.gif') && !realSrc.includes('data:image/svg+xml')) { $fancyboxLink.attr('href', realSrc); } } } function processImagesInContainer() { // Lấy ảnh đã có class lazy var existingLazyImages = [].slice.call(articleContainer.querySelectorAll("img.lazy")); lazyImages = lazyImages.concat(existingLazyImages); // Tự động convert ảnh khác var regularImages = [].slice.call(articleContainer.querySelectorAll("img:not(.lazy):not([data-lazy-processed])")); regularImages.forEach(function(img) { var rect = img.getBoundingClientRect(); var isInViewport = rect.top < (window.innerHeight + 100) && rect.bottom > -100; if (!isInViewport && img.src && (img.src.startsWith('http') || img.src.startsWith('/'))) { // ✅ Lưu src gốc trước khi thay đổi const originalSrc = img.src; // Convert thành lazy img.dataset.src = originalSrc; img.classList.add('lazy'); img.dataset.lazyProcessed = 'true'; // ✅ Cập nhật Fancybox href nếu đã được wrap const $img = $(img); const $fancyboxLink = $img.parent('a[data-fancybox]'); if ($fancyboxLink.length > 0) { $fancyboxLink.attr('href', originalSrc); } // Placeholder img.src = `/BaoQK7/images/loading_new.gif`; lazyImages.push(img); } else { img.dataset.lazyProcessed = 'true'; } }); } processImagesInContainer(); // ✅ IntersectionObserver với callback cập nhật Fancybox if ("IntersectionObserver" in window && lazyImages.length > 0) { let lazyImageObserver = new IntersectionObserver(function (entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting) { let lazyImage = entry.target; lazyImage.loading = "lazy"; lazyImage.decoding = "async"; lazyImage.onerror = function () { if (!lazyImage.dataset.fallbackTried) { lazyImage.dataset.fallbackTried = "true"; let originalSrc = lazyImage.dataset.src || ""; lazyImage.src = originalSrc.replace("https://99oke123.com", fallbackHost); } else { lazyImage.classList.add("error"); } }; lazyImage.onload = function () { lazyImage.classList.add("loaded"); lazyImage.classList.remove("lazy"); // ✅ Cập nhật Fancybox href sau khi ảnh load xong updateFancyboxHref(lazyImage); }; if (lazyImage.dataset.src) { lazyImage.src = lazyImage.dataset.src; } if (lazyImage.dataset.srcset) { lazyImage.srcset = lazyImage.dataset.srcset; } if (lazyImage.complete && lazyImage.naturalWidth > 0) { lazyImage.onload(); } lazyImageObserver.unobserve(lazyImage); } }); }, { root: null, rootMargin: '50px 0px', threshold: 0.01 }); lazyImages.forEach(function (lazyImage) { lazyImageObserver.observe(lazyImage); }); } });