Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách hiển thị biến JavaScript trên trang HTML không dùng document.write

Thay vì document.write() (chỉ hoạt động khi parse HTML, ghi đè trang nếu gọi sau load), hãy dùng Element.innerHTML, textContent hoặc DOM API hiện đại.

Ví dụ: Cập nhật real-time khi nhập input

// HTML: <input class="name"> <span class="jsValue"></span>
const $myName = document.querySelector('.name');
const $jsValue = document.querySelector('.jsValue');

$myName.addEventListener('input', function(event) {
  $jsValue.textContent = $myName.value; // An toàn XSS hơn innerHTML
});

So sánh các phương pháp

Phương phápƯu điểmNhược điểmKhi nào dùng
textContentAn toàn XSS, nhanh, chỉ văn bảnKhông render HTMLHiển thị dữ liệu người dùng, text thuần túy
innerHTMLRender HTML, mạnhRủi ro XSS nếu dữ liệu không tin cậyTemplate HTML tin cậy, nội dung đã sanitize
createElement + appendAn toàn nhất, hiệu năng tốt cho nhiều nodeCode dài hơnRender danh sách, component phức tạp
insertAdjacentHTMLChèn HTML tại vị trí chính xácCần sanitizeThêm nội dung động vào container

Best practice hiện đại

  • Ưu tiên textContent cho dữ liệu động từ user.
  • Dùng template literal + DOMParser hoặc framework (React, Vue, Svelte) cho UI phức tạp.
  • Tránh document.write hoàn toàn trong code production.