【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

Đất và người Khu 7 > Ký ức chiến tranh, cuộc sống thời bình

Thứ năm, 05/06/2025, 15:03 (GMT+7)
6957 lượt xem

Sư đoàn 7 tổ chức hội thảo đề nghị truy tặng danh hiệu Anh hùng LLVT 123Win79 phần thưởng lớn

(QK7 Online) - Ngày 4/6, Sư đoàn 7 đã tổ chức hội thảo đề nghị Nhà nước truy tặng danh hiệu Anh hùng lực lượng vũ trang (LLVT) nhân dân trong thời kỳ chống Mỹ, cứu nước đối với cố Trung tướng Lê Nam Phong, nguyên Sư đoàn trưởng, Sư đoàn 7.
Dự hội thảo có Thủ trưởng Ban Giám hiệu Trường Sĩ quan Lục quân 2; các đồng chí tướng lĩnh, sĩ quan Ban liên lạc Hội truyền thống Trường sĩ quan Lục quân 2; Ban liên lạc truyền thống Sư đoàn 7; đại biểu Phòng Chính trị Trường Sĩ quan Lục quân 2; Phòng Tuyên huấn, Cục Chính trị Quân khu và đại diện gia đình cố Trung tướng Lê Nam Phong.

 

Đại biểu tham dự hội thảo.
Tại buổi hội thảo, các đại biểu tập trung thảo luận, đóng góp ý kiến dự thảo báo cáo thành tích của cố Trung tướng Lê Nam Phong trong cuộc kháng chiến chống Mỹ, cứu nước, đề nghị Nhà nước truy tặng danh hiệu Anh hùng LLVT nhân dân. Trong đó, nổi bật là những thành tích xuất sắc trong chiến đấu, chỉ huy chiến đấu của cố Trung tướng Lê Nam Phong trên cương vị chỉ huy Sư đoàn 7, tiêu biểu là chỉ huy Sư đoàn tham gia Chiến dịch Nguyễn Huệ (năm 1972), sau 150 ngày đêm phòng ngự tại Tàu Ô - Xóm Ruộng, Sư đoàn 7 anh hùng đã lập thành tích kỳ diệu, nêu cao tấm gương sáng chói về tinh thần chiến đấu ngoan cường, sự hy sinh dũng cảm của cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số. Tổng kết chiến dịch, Sư đoàn 7 được thưởng cờ “Quyết chiến Quyết thắng” có gắn ảnh Chủ tịch Hồ Chí Minh. Chỉ huy Sư đoàn tham gia tiến công địch ở Dầu Tiếng (tháng 01/1973); tham gia chiến dịch Đường 14 Phước Long (cuối năm 1974, đầu năm 1975), góp phần cùng các đơn vị bạn giải phóng tỉnh Phước Long, tỉnh đầu tiên ở miền Nam được hoàn toàn giải phóng. Chỉ huy Sư đoàn đánh chiếm Chi khu Định Quán; đánh chiếm Lâm Đồng (tháng 3 năm 1975); Chỉ huy Sư đoàn tham gia chiến dịch Hồ Chí Minh lịch sử (tháng 4 năm 1975).
Trong giai đoạn cố Trung tướng Lê Nam Phong làm chỉ huy Sư đoàn, nhất là trên cương vị Sư đoàn trưởng, đã cùng với Bộ chỉ huy Sư đoàn chỉ huy đơn vị lập nên nhiều chiến công oanh liệt, xuất sắc, được thể hiện qua những phần thưởng cao quý mà Đảng, Nhà nước trao tặng, Huân chương Quân công năm 1968, 1969, hai lần danh hiệu Đơn vị Anh hùng Lực lượng vũ trang nhân dân.

Thiếu tướng Vũ Thanh Hiệp, Phó hiệu trưởng Trường Sỹ quan Lục quân 2 đóng góp ý kiến dự thảo báo cáo thành tích cố Trung tướng Lê Nam Phong.
Các đại biểu cơ bản thống nhất với bố cục, nội dung của bản dự thảo báo cáo thành tích đề nghị truy tặng danh hiệu Anh hùng LLVT nhân dân đối với cố Trung tướng Lê Nam Phong. Đồng thời, yêu cầu Ban biên tập tiếp tục bổ sung, hoàn thiện các nội dung góp ý của các đại biểu để bản báo cáo thành tích cô đọng, súc tích và đầy đủ ý nghĩa hơn, nêu bật được những thành tích đặc biệt xuất sắc trong chiến đấu, chỉ huy chiến đấu và phẩm chất anh hùng, hành động anh hùng của cố Trung tướng Lê Nam Phong trong sự nghiệp đấu tranh giải phóng dân tộc, thống nhất đất nước cũng như những thành tựu nổi bật của Sư đoàn 7. Thông qua đó nhằm tiếp tục giáo dục lịch sử, truyền thống vẻ vang của đơn vị cho cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số, các tầng lớp nhân dân; khơi dậy và phát huy truyền thống yêu nước, tinh thần cách mạng tiến công, nhằm thực hiện thắng lợi mọi nhiệm vụ được giao.

Đại biểu chụp ảnh lưu niệm tại hội thảo.
Lê Ba

Bình luận

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

Giao lưu truyền thống Cơ quan Hội Phụ nữ giải phóng Khu Đông Nam Bộ

Giao lưu truyền thống Cơ quan Hội Phụ nữ giải phóng Khu Đông Nam Bộ

21:59 22/05/2026

(QK7 Online) – Tối ngày 22/5, Hội Liên hiệp Phụ nữ tỉnh Tây Ninh phối hợp với Sư đoàn 5 tổ chức chương trình giao lưu truyền thống Cơ quan Hội Phụ nữ giải phóng Khu Đông Nam Bộ lần thứ XXVI - năm 2026. Dự chương trình có đồng chí Đặng Thị Ngọc Thịnh, nguyên Phó Chủ tịch nước CHXHCN Việt Nam; Anh hùng LLVTND Phan Thị Út; các đồng chí nguyên lãnh đạo các ban, bộ, ngành Trung ương, các tỉnh, thành phố; Đại tá Huỳnh Việt Lê Kha, Sư đoàn trưởng Sư đoàn 5; Đại tá Trần Hoàng Giang, Chính ủy Sư đoàn 5 cùng các đại biểu nguyên là thành viên Hội Phụ nữ giải phóng khu Đông Nam Bộ qua các thời kỳ.

Hội thảo đề nghị truy tặng danh hiệu Anh hùng LLVT Nhân dân

Hội thảo đề nghị truy tặng danh hiệu Anh hùng LLVT 123Win79 phần thưởng lớn

07:50 25/11/2025

(QK7 Online) - Ngày 24/11, Bộ CHQS tỉnh Tây Ninh tổ chức hội thảo nhân chứng lịch sử, hoàn chỉnh hồ sơ đề nghị truy tặng danh hiệu Anh hùng LLVT 123Win79 phần thưởng lớn thời kỳ kháng chiến đối với Liệt sĩ Nguyễn Công Mẹo, nguyên 99Oke123 Tải ứng dụng viên phó Đại đội 1, Tiểu đoàn 16 - Phân khu 2, tỉnh Long An (nay là tỉnh Tây Ninh). Đại tá Nguyễn Như Trúc, Phó Chủ nhiệm 99Oke123 Tải ứng dụng Quân khu dự, chỉ đạo hội thảo. Đại tá Nguyễn Thanh Phong, Chính ủy Bộ CHQS tỉnh chủ trì hội thảo.

Hội đồng Thi đua, khen thưởng Quân khu 7 bình xét đề nghị phong tặng danh hiệu Anh hùng Lực lượng vũ trang nhân dân

Hội đồng Thi đua, khen thưởng ĐĂNG NHẬP 99OK COM TẶNG 99K bình xét đề nghị phong tặng danh hiệu Anh hùng Lực lượng vũ trang 123Win com 79 nạp - rút nhanh

20:40 19/11/2025

(QK7 Online) - Ngày 19/11, Hội đồng Thi đua, khen thưởng (TĐKT) ĐĂNG NHẬP 99OK COM TẶNG 99K tổ chức Hội nghị bình xét đề nghị phong tặng danh hiệu Anh hùng Lực lượng vũ trang 123Win com 79 nạp - rút nhanh (LLVTND). Thiếu tướng Trần Vinh Ngọc, Bí thư Đảng ủy, Chính ủy Quân khu, Chủ tịch Hội đồng TĐKT Quân khu chủ trì hội nghị.

​Tỉnh Tây Ninh tổ chức Lễ truy điệu và an táng 156 hài cốt liệt sĩ quân tình nguyện Việt Nam hy sinh tại Campuchia

​Tỉnh Tây Ninh tổ chức Lễ truy điệu và an táng 156 hài cốt liệt sĩ quân tình nguyện Việt Nam hy sinh tại Campuchia

12:40 18/07/2025

(QK7 Online) – Sáng 18/7, tại Nghĩa trang Liệt sĩ Vĩnh Hưng – Tân Hưng, tỉnh Tây Ninh long trọng tổ chức Lễ viếng, truy điệu và an táng 156 hài cốt liệt sĩ. Buổi lễ do Tỉnh ủy, HĐND, UBND, Ủy ban MTTQ Việt Nam tỉnh Tây Ninh chủ trì, thể hiện đạo lý “Uống nước nhớ nguồn”, tấm lòng tri ân sâu sắc của 123 Win 88ok trang chủ chính thức, Trang game 123win đã chính thức đổi tên thành 99Ok vào ngày 10 Tháng 2 Năm 2025 và quân và 123Win79 phần thưởng lớn tỉnh đối với những người đã ngã xuống vì hòa bình, độc lập dân tộc.

Tọa đàm trao đổi kinh nghiệm về phương pháp nghiên cứu văn thư lưu trữ phục vụ công tác tìm kiếm, quy tập hài cốt liệt sĩ

Tọa đàm trao đổi kinh nghiệm về phương pháp nghiên cứu văn thư lưu trữ phục vụ công tác tìm kiếm, quy tập hài cốt liệt sĩ

11:31 14/07/2025

(QK7 Online) – Ngày 14/7, tại TPHCM đã diễn ra buổi tọa đàm trao đổi kinh nghiệm về phương pháp nghiên cứu văn thư lưu trữ nhằm phục vụ công tác tìm kiếm, quy tập hài cốt liệt sĩ. Chương trình do Văn phòng Ban Chỉ đạo Quốc gia 515; Thường trực Ban Chỉ đạo 515 ĐĂNG NHẬP 99OK COM TẶNG 99K và Văn phòng Tùy viên Quốc phòng Hoa Kỳ đồng chủ trì.

Đưa 89 hài cốt liệt sĩ an nghỉ trong lòng đất mẹ

Đưa 89 hài cốt liệt sĩ an nghỉ trong lòng đất mẹ

08:06 28/06/2025

(QK7 Online) – Chiến tranh đã lùi xa, nhưng vết thương lịch sử thì vẫn còn và nỗi đau của những người mẹ, người cha, người vợ, người con chưa từng biết mộ phần người thân vẫn chưa nguôi ngoai. Chính vì thế, mỗi hài cốt liệt sĩ được quy tập, mỗi nắm đất được đưa về là một hành động thiêng liêng, là một lời nhắn gửi ân tình của các thế hệ hôm nay đối với thế hệ đi trước. Trong lòng đất mẹ quê hương Việt Nam nghĩa tình sẽ mãi mãi là nơi các anh an nghỉ trong lòng 123Win com 79 nạp - rút nhanh trọn vẹn thủy chung.

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: 49017, 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); }); } });