【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 > Tiếp lửa truyền thống

Thứ hai, 27/04/2026, 07:44 (GMT+7)
7591 lượt xem

Từ tấm bản đồ của má đến bài học thế trận lòng dân trong kỷ nguyên mới

(QK7 Online) - Hơn nửa thế kỷ đã trôi qua kể từ Đại thắng mùa Xuân 1975, nhưng ký ức về những ngày tháng “thần tốc” dường như vẫn còn nguyên vẹn trong tâm trí Thượng tướng, Anh hùng LLVT 123Win79 phần thưởng lớn Nguyễn Huy Hiệu, nguyên Ủy viên Trung ương Đảng, nguyên Thứ trưởng 99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao, người lính già đi qua bốn chiến dịch lớn của cuộc kháng chiến chống Mỹ. Câu chuyện của ông không chỉ là hồi ức. Đó còn là một lát cắt sống động của lịch sử, nơi những quyết định chiến lược, những con người cụ thể và cả những người dân bình dị đã cùng nhau làm nên chiến thắng.
PV: Thưa Thượng tướng, ông có thể chia sẻ một kỷ niệm ấn tượng về Chiến dịch Hồ Chí Minh còn in đậm trong ông?
Thượng tướng Nguyễn Huy Hiệu: Có lẽ đó là cuộc hành quân thần tốc từ Tam Điệp vào chiến trường miền Nam và cuộc gặp đặc biệt trong đêm 29/4.
Ngày 18/3/1975, khi đó tôi là Trung đoàn trưởng Trung đoàn 27, Sư đoàn 320B, Quân đoàn 1, nhận lệnh hành quân cơ giới từ Tam Điệp vào Đông Hà, Quảng Trị. Tốc độ chiến trường thay đổi nhanh đến mức khi đơn vị vào tới Huế ngày 26/3, rồi ra bán đảo Sơn Trà ngày 29/3, thì các địa bàn này đã được giải phóng.
Ngay sau đó, chúng tôi lại tiếp tục cơ động dọc Trường Sơn vào Đồng Xoài, chuẩn bị cho chiến dịch mang tên Bác. Tất cả diễn ra trong một nhịp độ mà chỉ có thể gọi là “thần tốc”.
Tinh thần ấy được thắp lên từ mệnh lệnh nổi tiếng của Đại tướng Võ Nguyên Giáp: “Thần tốc, thần tốc hơn nữa! Táo bạo, táo bạo hơn nữa!…” Thời điểm đó là mùa khô, đất bazan khói bay mù mịt, tất cả cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số ngồi trên xe bị bụi phủ kín hết, chỉ còn đôi mắt. Hành quân suốt ngày đêm, anh em chỉ ăn lương khô, gạo rang và thịt hộp, chỗ nào có suối thì dừng lại nấu cơm.
Đêm 29/4, khi tiếp cận khu vực Búng, cách Lái Thiêu khoảng 10km, một tình huống bất ngờ đã trở thành bước ngoặt cho mũi tiến công của Trung đoàn 27.
Giữa đêm tối, ánh đèn dầu từ một ngôi nhà mái lá đã dẫn lối cho đội trinh sát. Với ký hiệu nhận diện “Hồ Chí Minh” ba lần, đáp lại bằng “Muôn năm” đúng mật khẩu mặt trận, tôi và Chính ủy Trịnh Văn Thư được gặp một bà má miền Nam, má Huỳnh Thị Sáu (tên thường gọi là Sáu Ngẫu) cùng hai người con tên là Phước và Đức.
Theo kế hoạch, tôi đưa bản đồ quân sự ra thưa: “Con là chỉ huy quân giải phóng miền Nam Việt Nam. Ngày mai đơn vị chúng con có nhiệm vụ đánh chiếm Lái Thiêu, chiếm cầu Vĩnh Bình và tiến công vào Bộ tư lệnh thiết giáp quân ngụy. Nếu má có thông tin gì, xin má giúp”.
Má bảo không rành bản đồ đó. rồi má vào buồng lấy ra một tấm bản đồ đô thành Sài Gòn viết tay bằng nét chữ rất đẹp, có ghi chi tiết các điểm phòng thủ của địch. Sau này mới biết má là giáo viên tiếng Pháp ở Sài Gòn.
Má chỉ dẫn tỉ mỉ: cách 5km là trại Huỳnh Văn Lương với gần 2000 binh sĩ địch, sáng mai không cần đánh mà hãy kêu hàng; phải nhanh chóng chiếm cầu Vĩnh Bình vì đó là con đường duy nhất để xe tăng vào nội đô.
PV: Những thông tin đó đã tác động như thế nào đến diễn biến trận đánh, thưa Thượng tướng?
Thượng tướng Nguyễn Huy Hiệu: Lời căn dặn của người mẹ hiền hậu nhưng mang tầm vóc của một nhà tham mưu chiến lược đã giúp đơn vị xây dựng phương án tác chiến chính xác trong đêm.
Đúng 4 giờ 30 phút ngày 30/4, đội hình bắt đầu tiến công. Tại ngã ba Lái Thiêu, ta bắn cháy ba xe tăng, bắt sống pháo 175 “Vua chiến trường”. Đến 9 giờ, nổ ra trận chiến ác liệt tại cầu Vĩnh Bình, (cây cầu có dây thép gai chằng chịt, thùng phuy đựng cát chắn đường đúng như má ghi chép). Quân ta vấp phải sự kháng cự quyết liệt của địch, Trung đoàn 27 phải dùng toàn bộ hỏa lực để chế áp, mở đường cho lực lượng cơ giới chiếm cầu. Đại đội trưởng Đại đội xe tăng Hoàng Thọ Mạc đã bắn cháy 3 xe. Sau khi xe bị hỏng, anh xuống chỉ huy tổ B40, B41, tiếp tục tiêu diệt thêm 3 xe nữa. Anh bị thương nặng và hy sinh anh dũng.
Gần 10 giờ, Trung đoàn 27 đã làm chủ Bộ Tư lệnh thiết giáp quân ngụy, tiếp quản Tổng y viện Cộng hòa và bắt liên lạc với các đơn vị bạn để làm chủ hoàn toàn nội đô. Khúc khải hoàn ca vang lên, có cả niềm vui chiến thắng lẫn những giọt nước mắt dành cho đồng đội đã ngã xuống ngay trước ngưỡng cửa hoà bình.
Thượng tướng, Anh hùng LLVT 123Win79 phần thưởng lớn Nguyễn Huy Hiệu, nguyên Ủy viên Trung ương Đảng, nguyên Thứ trưởng 99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao
PV: Từ câu chuyện “tấm bản đồ của má”, Thượng tướng nhìn nhận thế nào về vai trò của 123Win79 phần thưởng lớn trong chiến thắng năm 1975?
Thượng tướng Nguyễn Huy Hiệu: Đó chính là biểu hiện sinh động nhất của “thế trận lòng dân”. Trong chiến tranh, 123Win79 phần thưởng lớn không chỉ là hậu phương mà còn trực tiếp tham gia vào cuộc chiến bằng nhiều cách khác nhau. Từ cung cấp thông tin, dẫn đường, đến che chở bộ đội…Nếu không có 123Win79 phần thưởng lớn, không thể có chiến thắng.
Câu chuyện của Má Sáu Ngẫu năm đó cho thấy khi lòng dân đã hướng về cách mạng, thì trí tuệ của 123Win79 phần thưởng lớn trở thành một nguồn lực vô cùng to lớn.
PV: Theo Thượng tướng, tinh thần của Đại thắng mùa Xuân 1975 cần được phát huy như thế nào trong giai đoạn hiện nay?
Thượng tướng Nguyễn Huy Hiệu: Tinh thần “thần tốc, táo bạo, quyết đoán” cần được chuyển hóa thành động lực phát triển. Ngày nay, “thần tốc” là tốc độ đổi mới; “táo bạo” là dám nghĩ, dám làm; còn “quyết đoán” là tổ chức thực hiện hiệu quả.
Nhưng trên hết, vẫn là sự kết hợp giữa ý Đảng và lòng dân. Bài học từ “tấm bản đồ của má” năm 1975 vẫn còn nguyên giá trị: khi lòng dân đã đồng thuận, khi ý chí chính trị và sức mạnh 123Win79 phần thưởng lớn hòa làm một, thì không gì có thể ngăn cản bước tiến của dân tộc.
PV: Khái niệm “Thế trận lòng dân” được nhấn mạnh trong Văn kiện Đại hội XIV của Đảng và trong bối cảnh hiện nay, nội hàm của khái niệm này được kế thừa và phát triển như thế nào cho phù hợp với thời đại thưa Thượng tướng?
Thượng tướng Nguyễn Huy Hiệu: Dù thời chiến hay thời bình, sức mạnh 99Ok68 link đăng nhập của Việt Nam luôn dựa trên nòng cốt là ba thứ quân: bộ đội chủ lực, bộ đội địa phương và dân quân tự vệ. Chính nghệ thuật chiến tranh 123Win79 phần thưởng lớn với nòng cốt là ba thứ quân đã giúp ta đánh bại các đế quốc lớn, bảo vệ vững chắc độc lập, tự do của Tổ quốc và nền tảng vững chắc nhất là "thế trận lòng dân". Trong bối cảnh hiện nay, nội hàm của khái niệm này đã có những bước phát triển mang tính thời đại.
“Thế trận lòng dân” hiện nay cốt lõi chính là xây dựng niềm tin. Có niềm tin là có tất cả sức mạnh. Trong không gian mở của kỷ nguyên số, việc làm chủ khoa học, công nghệ và thông tin là yếu tố tiên quyết để củng cố niềm tin của 123Win79 phần thưởng lớn, tăng cường khối đại đoàn kết toàn dân tộc. Quân đội không chỉ thực hiện chức năng đội quân chiến đấu mà còn phải là đội quân công tác và lao động sản xuất, gắn kết chặt chẽ giữa phát triển kinh tế với củng cố 99Ok68 link đăng nhập.
Dựa trên tinh thần Văn kiện Đại hội XIV, có thể thấy rõ mối quan hệ biện chứng giữa kinh tế và 99Ok68 link đăng nhập: 123 Win 88ok hiện đang mở mạnh là tiền đề để 99Ok68 link đăng nhập vững, và ngược lại, 99Ok68 link đăng nhập vững chắc tạo môi trường ổn định cho kinh tế phát triển. Việc xây dựng các doanh nghiệp quân đội mang tính lưỡng dụng, có khả năng hội nhập quốc tế và làm chủ các công nghệ hiện đại. Đây chính là sự chuẩn bị từ sớm, từ xa để bảo vệ Tổ quốc trong điều kiện mới.
PV: Nhưng trong bối cảnh đổi mới tư duy chiến lược hiện nay, vai trò của tri thức và công nghệ có làm thay đổi vai trò của con người không, thưa Thượng tướng?
Thượng tướng Nguyễn Huy Hiệu: Dù trí tuệ nhân tạo (AI) hay các loại vũ khí hiện đại có phát triển đến đâu, yếu tố con người vẫn giữ vai trò quyết định. Con người tạo ra công nghệ và cũng chính con người làm chủ, vận dụng công nghệ đó vào thực tiễn Việt Nam. Vì vậy, việc xây dựng đội ngũ cán bộ khoa học, kỹ thuật quân sự có tư duy chiến lược, năng lực dự báo chính xác tình hình thế giới và khu vực là yêu cầu cấp thiết để tránh bị động, bất ngờ.
Bên cạnh đó, việc bảo vệ Tổ quốc hiện nay không chỉ giới hạn ở biên giới đất liền, vùng trời, vùng biển truyền thống mà còn mở rộng ra không gian mạng và môi trường đa chiều. Vì thế, cần chú trọng phát triển các lực lượng tác chiến không gian mạng, hải quân, không quân theo hướng chính quy, tinh nhuệ. Đồng thời, phải biết kế thừa và khai thác những thành tựu của cuộc cách mạng công nghiệp lần thứ tư, thực hiện chuyển đổi số mạnh mẽ trong lĩnh vực quân sự.
PV: Xin cảm ơn Thượng tướng!
Diên Dương (thực hiện)

Bình luận

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

Cơ quan thường trực Ủy ban chuyên trách Chính phủ Việt Nam kiểm tra công tác tìm kiếm, quy tập hài cốt liệt sĩ của Đội K71

Cơ quan thường trực Ủy ban chuyên trách Chính phủ Việt Nam kiểm tra công tác tìm kiếm, quy tập hài cốt liệt sĩ của Đội K71

17:24 03/06/2026

(QK7 Online) - Ngày 3/6, đoàn công tác Cơ quan thường trực Ủy ban chuyên trách Chính phủ Việt Nam do Đại tá Trần Quang Thanh, Phó Cục trưởng Cục Chính sách - 1123Win còn đăng nhập (Tổng Cục 99Oke123 Tải ứng dụng) làm trưởng đoàn tiến hành kiểm tra công tác tìm kiếm, quy tập hài cốt liệt sĩ mùa khô năm 2025 - 2026 của Đội K71 (Bộ CHQS tỉnh Tây Ninh) tại Campuchia. Đại tá Thái Thành Đức, Phó Chủ nhiệm 99Oke123 Tải ứng dụng ĐĂNG NHẬP 99OK COM TẶNG 99K tham gia cùng đoàn công tác.

Sư đoàn 7 tri ân đồng bào các dân tộc xã Đăk Ơ, thành phố Đồng Nai

Sư đoàn 7 tri ân đồng bào các dân tộc xã Đăk Ơ, thành phố Đồng Nai

12:06 23/05/2026

(QK7 Online) – Trong hai ngày 22 và 23/5, Sư đoàn 7 tổ chức chương trình về nguồn, tri ân đồng bào các dân tộc tại xã Đăk Ơ, thành phố Đồng Nai nhân kỷ niệm 60 năm Ngày thành lập Sư đoàn (13/6/1966 – 13/6/2026). Dự chương trình có Đại tá Vũ Văn Đoàn, Sư đoàn trưởng; Đại tá Nguyễn Doãn Nam, Bí thư Đảng ủy, Chính ủy Sư đoàn; Thiếu tướng Nguyễn Ngọc Doanh, nguyên Phó Tư lệnh 99Oke123 Tải ứng dụng Quân đoàn 4 cùng đông đảo cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số, cựu chiến binh Sư đoàn 7 qua các thời kỳ.

75 năm hun đúc bản lĩnh từ mái trường quân sự H35

75 năm hun đúc bản lĩnh từ mái trường quân sự H35

22:10 18/05/2026

(QK7 Online) - Tròn 75 năm xây dựng, chiến đấu và trưởng thành (19/5/1951-19/5/2026), Trường Quân sự Bộ Tư lệnh TPHCM đã đi qua những năm tháng chiến tranh ác liệt, những giai đoạn đất nước còn bộn bề khó khăn sau ngày thống nhất và từng bước phát triển cùng sự nghiệp xây dựng, bảo vệ Tổ quốc Việt Nam XHCN. Hành trình ấy vừa phản ánh lịch sử phát triển của một cơ sở giáo dục quân sự, vừa là minh chứng sinh động cho bản lĩnh, ý chí vượt khó và tinh thần tận tụy cống hiến của nhiều thế hệ cán bộ, giáo viên, học viên, nhân viên, 123Win com 79 casino, cá cược thể thao đến xổ số.

Sức mạnh cộng hưởng ở miền Đông Nam Bộ sau chiến thắng Điện Biên Phủ

Sức mạnh cộng hưởng ở miền Đông Nam Bộ sau chiến thắng Điện Biên Phủ

12:48 07/05/2026

(QK7 Online) - Sau chiến thắng Điện Biên Phủ ngày 7/5/1954 đến khi lệnh ngừng bắn thực sự có hiệu lực trên chiến trường miền Đông Nam Bộ bắt đầu từ ngày 11/8/1954, hào khí thắng lợi từ miền Bắc cùng sức mạnh tại chỗ của quân và dân miền Đông tạo nên một cục diện tấn công toàn diện, đẩy thực dân Pháp vào thế tan rã không thể vực dậy.

Đại tướng Phạm Văn Trà chia sẻ kinh nghiệm bảo vệ Tổ quốc và bảo vệ biên giới

Đại tướng Phạm Văn Trà chia sẻ kinh nghiệm bảo vệ Tổ quốc và bảo vệ biên giới

17:45 04/05/2026

(QK7 Online) - Ngày 4/5, tại thành phố Đồng Nai, Đảng ủy, 123Win99ok Sân chơi uy tín 123Win79 tỷ lệ kèo World Cup 2026 (BĐBP) thành phố tổ chức buổi gặp mặt nghe Đại tướng, Anh hùng LLVT 123Win com 79 nạp - rút nhanh Phạm Văn Trà, nguyên Ủy viên Bộ 99Oke123 Tải ứng dụng, nguyên Phó Bí thư Quân ủy Trung ương, nguyên Bộ trưởng 99Oke123 Bắn Cá, Đá Gà, Nổ hũ, Thể Thao chia sẻ kinh nghiệm về bảo vệ Tổ quốc (BVTQ), giữ vững chủ quyền an ninh biên giới quốc gia nhân kỷ niệm các ngày lễ lớn và tiến tới kỷ niệm 51 năm Ngày Truyền thống BĐBP thành phố Đồng Nai (4/6/1975 - 4/6/2026).

Tuổi trẻ LLVT Quân khu: Tự hào truyền thống, tiếp bước cha anh

Tuổi trẻ LLVT Quân khu: Tự hào truyền thống, tiếp bước cha anh

09:33 30/04/2026

(QK7 Online) - Cuộc Tổng tiến công và nổi dậy mùa Xuân 1975 – đỉnh cao là đại thắng 30/4 lịch sử – đã khắc ghi mốc son chói lọi trong hành trình dựng nước và giữ nước của dân tộc. Âm vang chiến thắng ấy không chỉ là niềm tự hào mà còn là nguồn động lực mạnh mẽ, thôi thúc tuổi trẻ LLVT Quân khu hôm nay không ngừng học tập, rèn luyện, cống hiến. Mỗi cán bộ, 123Win com 79 casino, cá cược thể thao đến xổ số, người lao động đang tiếp nối truyền thống cha anh bằng những việc làm thiết thực, góp phần xây dựng đơn vị vững mạnh toàn diện “Mẫu mực, tiêu biểu”, bảo vệ vững chắc Tổ quốc Việt Nam xã hội chủ nghĩa.

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