Thẻ script được ẩn theo mặc định bằng cách sử dụng display:none;
. Unor 1 giải thích các đặc tả ngôn ngữ cơ bản. Tuy nhiên, chúng vẫn là một phần của DOM và có thể được tạo kiểu tương ứng.
Điều đó nói rằng, điều quan trọng là phải ghi nhớ chính xác những gì một thẻ script đang làm. Mặc dù nó được sử dụng kèm theo các loại và ngôn ngữ, nhưng điều đó không còn cần thiết nữa. Bây giờ người ta cho rằng JavaScript có trong đó và kết quả là các trình duyệt sẽ diễn giải và thực thi tập lệnh khi nó gặp phải (hoặc được tải) từ các thẻ này.
Khi tập lệnh đã được thực thi, nội dung của thẻ chỉ là văn bản (thường bị ẩn) trên trang. Văn bản này có thể được tiết lộ, nhưng nó cũng có thể bị xóa vì nó chỉ là văn bản.
Ở dưới cùng của trang của bạn, ngay trước </html>
thẻ đóng , bạn có thể dễ dàng xóa các thẻ này cùng với văn bản của chúng và sẽ không có thay đổi nào đối với trang.
Ví dụ:
(function(){
var scripts = document.querySelectorAll("script");
for(var i = 0; i < scripts.length; i++){
scripts[i].parentNode.removeChild(scripts[i]);
}
})()
Điều này sẽ không xóa bất kỳ chức năng nào, vì trạng thái của trang đã bị thay đổi và được phản ánh trong bối cảnh thực thi toàn cầu hiện tại. Ví dụ: nếu trang đã tải một thư viện như jQuery, việc xóa các thẻ sẽ không có nghĩa là jQuery không còn được hiển thị nữa vì nó đã được thêm vào môi trường thời gian chạy của trang. Về cơ bản, nó chỉ làm cho công cụ kiểm tra DOM không hiển thị các thành phần tập lệnh, nhưng nó làm nổi bật rằng các thành phần tập lệnh một khi được thực thi thực sự chỉ là văn bản.
1. unor, Thu Jul 07 2016, wutzebaer, "Khi nào các thẻ nên được hiển thị và tại sao chúng có thể?", 1 tháng 7 lúc 10:53, https://stackoverflow.com/a/38147398/1026459
<style>
với nội dung có thể chỉnh sửa. Cách tốt đẹp để xem các hiệu ứng trong thời gian thực.