Hầu hết trình duyệt hiện đại đều hỗ trợ JavaScript và bật mặc định. Tuy nhiên, người dùng có thể tắt JS vì lý do bảo mật, riêng tư hoặc kiểm soát hiệu năng. Để xử lý tình huống này, HTML cung cấp thẻ <noscript>.
Thẻ <noscript> là gì?
<noscript> định nghĩa nội dung hiển thị chỉ khi JavaScript bị tắt hoặc không được hỗ trợ. Trình duyệt sẽ bỏ qua nội dung này nếu JS hoạt động bình thường.
Cú pháp cơ bản
<noscript>
Nội dung hiển thị khi JS bị tắt
</noscript>
Ví dụ hoàn chỉnh
<!DOCTYPE html>
<html>
<head>
<title>Xử lý khi JavaScript bị tắt</title>
</head>
<body>
<script>
document.write("<p>JavaScript đang hoạt động!</p>");
</script>
<noscript>
<p style="color: red; font-weight: bold;">
Trình duyệt của bạn không hỗ trợ JavaScript hoặc JavaScript đã bị tắt.
Vui lòng bật JavaScript để trải nghiệm đầy đủ tính năng.
</p>
</noscript>
</body>
</html>
Ứng dụng thực tế
- Thông báo yêu cầu bật JS: Hiển thị hướng dẫn cách bật JavaScript cho từng trình duyệt.
- Cung cấp nội dung thay thế: Hiển thị phiên bản tĩnh của nội dung động (menu, form, biểu đồ...).
- Liên kết đến phiên bản non-JS:
<a href="/no-js-version">Xem phiên bản không cần JavaScript</a> - Analytics fallback: Ghi nhận người dùng tắt JS qua pixel tracking trong
<noscript>.
Lưu ý
<noscript>có thể đặt trong<head>(chỉ chứa<link>,<style>,) hoặc<body>.- Không thể dùng
<noscript>để phát hiện JS bị chặn bởi extension (như NoScript) – trường hợp này JS vẫn "bật" nhưng bị chặn thực thi. - Để phát hiện JS bị chặn bởi extension, dùng kỹ thuật: tải một script nhỏ thiết lập cookie/flag, sau đó kiểm tra từ server-side.