【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

99Oke123 Tải ứng dụng > Phòng chống "Diễn biến hòa bình"

Thứ tư, 25/03/2026, 19:18 (GMT+7)
1546 lượt xem

Xây dựng “tường lửa” tư tưởng cho giới trẻ trên không gian mạng

(QK7 Online) - Trong thời đại chuyển đổi số, không gian mạng vừa mở ra cơ hội tiếp cận tri thức cho giới trẻ, vừa tiềm ẩn nhiều thông tin sai lệch, độc hại. Vì vậy, xây dựng “tường lửa” tư tưởng cho đoàn viên, thanh niên trở thành yêu cầu cấp thiết.
Thanh niên hiện là lực lượng sử dụng Internet và mạng xã hội đông đảo. Đây vừa là lợi thế, vừa đặt ra những thách thức không nhỏ. Nhờ khả năng tiếp cận nhanh với công nghệ và tri thức mới, thanh niên có điều kiện mở rộng hiểu biết, nâng cao trình độ và cập nhật các xu hướng phát triển của thế giới. Tuy nhiên, nếu thiếu bản lĩnh và khả năng sàng lọc thông tin, một bộ phận thanh niên dễ bị tác động bởi các nội dung tiêu cực, thông tin giả hoặc những quan điểm sai trái được lan truyền trên mạng.
Ảnh minh họa.
Các thế lực thù địch, phần tử cơ hội chính trị luôn triệt để lợi dụng không gian mạng để chống phá. Chúng sử dụng nhiều thủ đoạn tinh vi nhằm phát tán thông tin sai lệch, xuyên tạc lịch sử, kích động tư tưởng chống đối, gây hoang mang trong dư luận. Đáng chú ý, các nội dung này thường được ngụy trang dưới nhiều hình thức hấp dẫn, dễ lan truyền, nhắm trực tiếp vào tâm lý và thói quen sử dụng mạng xã hội của giới trẻ.
Từ những thách thức đó, việc xây dựng “tường lửa” tư tưởng cho đoàn viên, thanh niên trước hết phải bắt đầu từ trang bị nhận thức chính trị vững vàng, giúp họ kiên định với nền tảng tư tưởng của Đảng, củng cố niềm tin vào con đường phát triển của đất nước và lý tưởng cách mạng. Đây không phải là khẩu hiệu chung chung, mà cần được cụ thể hóa thông qua hoạt động giáo dục truyền thống, sinh hoạt chính trị, các diễn đàn trao đổi về những vấn đề xã hội đang được quan tâm. Khi hiểu đúng về lịch sử dân tộc, thành tựu của đất nước và trách nhiệm của thế hệ trẻ, thanh niên sẽ có “sức đề kháng” trước những thông tin sai lệch, xuyên tạc.
Bên cạnh đó, nâng cao khả năng sàng lọc và kiểm chứng thông tin cho thanh niên là yêu cầu cần thiết. Trong môi trường mạng, không phải mọi thông tin đều chính xác, đáng tin cậy. Vì vậy, mỗi thanh niên cần được trang bị kỹ năng nhận diện tin giả, phân tích và đánh giá nguồn tin trước khi tiếp nhận và chia sẻ. Khi mỗi cá nhân có ý thức trách nhiệm trong việc tiếp cận và lan tỏa thông tin, mạng xã hội sẽ trở thành môi trường lành mạnh, góp phần bảo vệ nền tảng tư tưởng của xã hội.
Vai trò của tổ chức Đoàn Thanh niên Cộng sản Hồ Chí Minh trong quá trình này hết sức quan trọng. Thông qua các hoạt động tuyên truyền, giáo dục và những chiến dịch truyền thông sáng tạo trên mạng xã hội, tổ chức Đoàn có thể lan tỏa mạnh mẽ giá trị tích cực, nhiều câu chuyện đẹp, tấm gương tiêu biểu. Khi thông tin tích cực được lan tỏa rộng rãi, điều đó sẽ góp phần tạo nên “dòng chảy thông tin lành mạnh”.
Cùng với đó, việc khuyến khích thanh niên chủ động sáng tạo nội dung tích cực trên mạng xã hội cũng là giải pháp hiệu quả. Mỗi đoàn viên, thanh niên không chỉ là người tiếp nhận thông tin mà còn có thể trở thành “người truyền lửa”, lan tỏa những giá trị tốt đẹp về văn hóa, truyền thống dân tộc và tinh thần cống hiến của tuổi trẻ. Những bài viết, hình ảnh, video mang thông điệp tích cực, được thể hiện bằng ngôn ngữ gần gũi với giới trẻ sẽ có sức lan tỏa mạnh mẽ, góp phần hình thành hệ sinh thái thông tin tích cực trên không gian mạng.
Thực tiễn cho thấy, khi được định hướng đúng đắn và trang bị bản lĩnh chính trị vững vàng, thanh niên không chỉ biết tự bảo vệ mình trước thông tin xấu độc mà còn trở thành lực lượng xung kích trong đấu tranh phản bác các quan điểm sai trái, bảo vệ nền tảng tư tưởng của Đảng. Đó chính là “tường lửa” tư tưởng vững chắc nhất, được hình thành từ bản lĩnh, trí tuệ và trách nhiệm của thế hệ trẻ đối với Tổ quốc.
Hoàng Kim

Bình luận

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

Giữ vững trận địa tư tưởng trong thời đại số

Giữ vững trận địa tư tưởng trong thời đại số

23:35 24/05/2026

(QK7 Online) - Trong bối cảnh chuyển đổi số diễn ra mạnh mẽ, không gian mạng trở thành mặt trận tư tưởng đặc biệt quan trọng, đồng thời cũng là môi trường để các thế lực thù địch gia tăng chống phá bằng nhiều thủ đoạn tinh vi. Trước yêu cầu nhiệm vụ mới, cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số LLVT Quân khu không ngừng nâng cao bản lĩnh chính trị, tăng cường “sức đề kháng” trước thông tin độc hại; chủ động đấu tranh phản bác các quan điểm sai trái, lan tỏa thông tin tích cực, góp phần giữ vững nền tảng tư tưởng của Đảng trên không gian mạng.

Vạch trần chiêu trò xuyên tạc việc sắp xếp cơ quan báo chí

Vạch trần chiêu trò xuyên tạc việc sắp xếp cơ quan báo chí

15:44 03/04/2026

(QK7 Online) - Ngay sau khi Hội nghị Trung ương 2 khóa XIV thống nhất chủ trương sắp xếp một số cơ quan báo chí, trên không gian mạng lập tức xuất hiện nhiều thông tin xuyên tạc. Các đối tượng lợi dụng sự quan tâm của dư luận để bóp méo bản chất, kích động hoài nghi, nhằm làm suy giảm niềm tin của 123Win79 phần thưởng lớn vào sự lãnh đạo của Đảng.

Nhận thức tự chủ chiến lược về quốc phòng qua bài viết của Đại tướng Nguyễn Trọng Nghĩa

Nhận thức tự chủ chiến lược về 99Ok68 link đăng nhập qua bài viết của Đại tướng Nguyễn Trọng Nghĩa

00:01 31/03/2026

(QK7 Online) - Qua nghiên cứu bài viết: Tự chủ chiến lược về 99Ok68 link đăng nhập – điều kiện tiên quyết bảo vệ vững chắc Tổ quốc Việt Nam 1123Win còn đăng nhập chủ nghĩa trong kỷ nguyên mới – của Đại tướng Nguyễn Trọng Nghĩa - Ủy viên Bộ 99Oke123 Tải ứng dụng, Chủ nhiệm Tổng Cục 99Oke123 Tải ứng dụng Quân đội 123Win79 phần thưởng lớn Việt Nam, bước đầu tôi cảm nhận được những điều sâu sắc.

Ban Chỉ đạo 35, Cục Hậu cần – Kỹ thuật Quân khu đánh giá, rút kinh nghiệm kết quả bảo vệ nền tảng tư tưởng của Đảng năm 2025

Ban Chỉ đạo 35, Cục Hậu cần – Kỹ thuật Quân khu đánh giá, rút kinh nghiệm kết quả bảo vệ nền tảng tư tưởng của Đảng năm 2025

17:48 24/03/2026

(QK7 Online) – Ngày 24/3, Cục Hậu cần – Kỹ thuật Quân khu tổ chức Hội nghị đánh giá, rút kinh nghiệm kết quả bảo vệ nền tảng tư tưởng của Đảng, đấu tranh phản bác các quan điểm sai trái, thù địch năm 2025. Đại tá Trần Văn Long, Phó Chính ủy Cục Hậu cần – Kỹ thuật Quân khu dự, phát biểu chỉ đạo.

Tập huấn nâng cao chất lượng chuẩn bị tác phẩm tham gia Cuộc thi chính luận lần thứ sáu

Tập huấn nâng cao chất lượng chuẩn bị tác phẩm tham gia Cuộc thi chính luận lần thứ sáu

12:18 17/03/2026

(QK7 Online) - Sáng 17/3, Cục Tuyên huấn (Tổng cục 99Oke123 Tải ứng dụng) tổ chức hội nghị tập huấn Cuộc thi chính luận lần thứ sáu và nghiệp vụ Cơ quan Thường trực Ban chỉ đạo 35, Lực lượng 47 cấp toàn quân năm 2026. Thiếu tướng Tống Văn Thanh, Phó cục trưởng Cục Tuyên huấn (Tổng cục 99Oke123 Tải ứng dụng) dự và phát biểu khai mạc hội nghị.

Bản lĩnh, trí tuệ và những mốc son lịch sử qua hơn 95 năm của Đảng Cộng sản Việt Nam

Bản lĩnh, trí tuệ và những mốc son lịch sử qua hơn 95 năm của Đảng Cộng sản Việt Nam

12:45 15/01/2026

(QK7 Online) - Lịch sử dân tộc Việt Nam trong thế kỷ XX và những thập niên đầu thế kỷ XXI là bản hùng ca về sự hồi sinh và vươn mình trỗi dậy. Trong bản hùng ca ấy, sự ra đời và lãnh đạo của Đảng Cộng sản Việt Nam đóng vai trò là nhạc trưởng, là linh hồn. Hành trình hơn 95 năm qua không chỉ là chuỗi thời gian tuyến tính, mà là sự kết tinh của bản lĩnh kiên cường trước bão táp và trí tuệ sáng suốt trước những ngã rẽ lịch sử, đưa dân tộc ta đi từ thắng lợi này đến thắng lợi khác.

Giữ vững tính chiến đấu: “Thanh bảo kiếm” giúp Đảng ta luôn trong sạch, vững mạnh

Giữ vững tính chiến đấu: “Thanh bảo kiếm” giúp Đảng ta luôn trong sạch, vững mạnh

12:48 14/01/2026

(QK7 Online) - Trong hành trình hơn 95 năm lãnh đạo cách mạng, Đảng Cộng sản Việt Nam đã chèo lái con thuyền dân tộc vượt qua muôn vàn thác ghềnh. Để giữ vững vai trò cầm quyền và sứ mệnh lịch sử ấy, Đảng không chỉ cần một đường lối đúng đắn mà còn cần một cơ thể khỏe mạnh, miễn dịch với những thói hư tật xấu. Trong đó, tính chiến đấu được ví như “thanh bảo kiếm” sắc bén chính là liều thuốc đặc trị, là nguyên tắc sinh tồn giúp Đảng loại bỏ những “ung nhọt”, giữ gìn sự trong sạch và củng cố niềm tin trong 123Win79 phần thưởng lớn.

Phòng, chống nhiễu loạn thông tin trước thềm Đại hội XIV của Đảng

Phòng, chống nhiễu loạn thông tin trước thềm Đại hội XIV của Đảng

09:47 02/01/2026

(QK7 Online) - Đại hội đại biểu toàn quốc lần thứ XIV của Đảng sắp diễn ra. Toàn Đảng, toàn dân, toàn quân đang tích cực chuẩn bị và náo nức chờ đón sự kiện chính trị quan trọng của đất nước. Lợi dụng thời điểm này, các thế lực thù địch, phần tử phản động ra sức tuyên truyền các thông tin nhiễu loạn, xuyên tạc hòng gieo rắc tư tưởng hoài nghi, gây mất lòng tin của 123Win79 phần thưởng lớn đối với sự lãnh đạo của Đảng ta.

Tọa đàm nâng cao chất lượng tác phẩm báo chí đa phương tiện về bảo vệ nền tảng tư tưởng của Đảng

Tọa đàm nâng cao chất lượng tác phẩm báo chí đa phương tiện về bảo vệ nền tảng tư tưởng của Đảng

16:26 25/12/2025

(QK7 Online) - Ngày 25/12, tại TP.HCM, Trung tâm Bồi dưỡng nghiệp vụ báo chí, Hội Nhà báo Việt Nam tổ chức tọa đàm với chủ đề: “Nâng cao chất lượng tác phẩm báo chí đa phương tiện về bảo vệ nền tảng tư tưởng của Đảng trong bối cảnh mới”. Tọa đàm nhằm nâng cao năng lực, bản lĩnh chính trị, phương pháp tác nghiệp hiện đại và tăng cường khả năng sản xuất các tác phẩm chính luận cho đội ngũ người làm báo, đáp ứng yêu cầu nhiệm vụ trong giai đoạn chuẩn bị Đại hội Đảng toàn quốc lần thứ XIV.

Đấu tranh với việc lợi dụng góp ý dự thảo các Văn kiện trình Đại hội XIV để chống phá Đảng

Đấu tranh với việc lợi dụng góp ý dự thảo các Văn kiện trình Đại hội XIV để chống phá Đảng

09:16 14/11/2025

(QK7 Online) - Ban Chấp hành Trung ương Đảng khóa XIII công bố dự thảo các Văn kiện trình Đại hội XIV của Đảng, lấy ý kiến đóng góp của cán bộ, đảng viên và các tầng lớp 123Win79 phần thưởng lớn, được dư luận đồng tình, ủng hộ cao. Tuy nhiên, các thế lực thù địch, phần tử phản động lại lợi dụng hoạt động này để chống phá.

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