Tôi nên sử dụng textcontent hay innerhtml?
Tất cả văn bản được bao gồm bởi một phần tử, cũng như tất cả các phần tử con của nó, được gọi là nội dung văn bản và Khoảng trắng trong văn bản được giảm liên tục trên tất cả các trình duyệt được hỗ trợ khi được truy cập thông qua thuộc tính nội dung văn bản của một phần tử. trong khi HTML bên trong trả về tất cả văn bản cùng với thẻ HTML được bao quanh bởi một phần tử. Thuộc tính này thay đổi nội dung văn bản bên trong một phần tử. Không giống như thuộc tính Nội dung văn bản, HTML bên trong trả về mọi thứ bên trong phần tử một cách chính xác, kể cả HTML Show
So sánh trực tiếp giữa InternalHTML với textContent (Infographics)Dưới đây là 9 điểm khác biệt hàng đầu giữa InternalHTML và textContent Bắt đầu khóa học phát triển phần mềm miễn phí của bạn Phát triển web, ngôn ngữ lập trình, kiểm thử phần mềm và những thứ khác Gói phát triển phần mềm tất cả trong một(hơn 600 khóa học, hơn 50 dự án) Giá 600+ Khóa học trực tuyến. hơn 50 dự án. Hơn 3000 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập Trọn đời Bảng so sánh của InternalHTML so với textContentBảng dưới đây đưa ra sự so sánh giữa HTML bên trong và Nội dung văn bản. Bắt đầu nào S. KHÔNG Nội dung văn bảnInner HTMLDefinitionKhi thực hiện xong một phần tử, nó trả về một văn bản và phần văn bản được bao bọc bởi phần tử trong khi bỏ qua khoảng trắng. Một điều tốt là văn bản được chọn và sao chép ra khỏi trang (lựa chọn theo chuỗi). HTML bên trong trả về hoặc đặt phần văn bản cùng với các thẻ HTML và khoảng cách được xem xét. Họ xử lý các phần tử bên trong của HTML bằng cách coi các thuộc tính là một tính năng. DevelopInnerText được giới thiệu bởi Microsoft và nó không phải là tiêu chuẩn. Được giới thiệu bởi Microsoft. Các ký tự (và) ,(< ,>) được trả về dưới dạng thực thể HTML. Cú pháp______0Nó trở lại el. văn bảnnội dung
Nó trở lại el. bên trongHtml Nội dung CSSText không phải là một hệ thống nhận biết phong cáchNó trả về văn bản được nhúng trong phần tử CSS. Nhưng ở đây dữ liệu ký tự không được tạo ra. Nó bao gồm các thẻ mở và đóng. Thẻ HTML Không thể chèn thẻ HTML. Chúng rất giống với văn bản bên trong. TextContent, mặt khác, thực hiện một điều kỳ lạ. nó bỏ qua các dòng mới được tạo bởi br> và các phần tử được tạo kiểu dưới dạng khối. Tuy nhiên, các khoảng trắng được xác định trong đánh dấu được giữ nguyên. Các thẻ HTML có thể được chèn vào tập lệnh. Chúng không giống với nội dung văn bản. Phần quan trọng của mã
Ưu điểmỞ đây, một thuộc tính trả về nội dung văn bản và phần con của nó thể hiện chính xác cách nội dung văn bản xuất hiện trên trang. Đây là một tính năng hữu ích và cần thiết trong JQuery. Html bên trong được cho là sạch hơn khi thêm các thuộc tính vào một phần tử. Nhược điểm Yêu cầu một vài bố cục thông tin hệ thống khi trả về văn bản làm giảm hiệu suất. Yêu cầu Kiến thức đắt tiền về Bố cục. Dễ bị tấn công bởi các mối đe dọa bảo mật xuyên trang. Dữ liệu chỉ được sử dụng nếu nó bắt nguồn từ một nguồn đáng tin cậy. Ví dụ Ví dụ.
đầu ra Vui lòng đăng nhập phiên Tom Donald Chào mừng đến với Trang
Sự khác biệt chính của InternalHTML so với textContent1. Thuộc tính innerHTML của phần tử lấy hoặc đặt nội dung HTML của phần tử. Vì phần tử textContent không tự động mã hóa và giải mã văn bản nên chúng ta chỉ có thể thao tác với phần nội dung của phần tử. Ví dụ Ví dụ 1
Giải trình Tập lệnh cho biết hãy nhấp vào cụm từ và nội dung được thay đổi thành văn bản và đầu ra được hiển thị dưới dạng đầu ra Ví dụ #2không khí. html
Giải trình Mã ví dụ trên hiển thị cả định dạng InternalHTML và văn bản Nội dung. Vì vậy, khi một nút được gửi, trang sẽ chuyển hướng đến hộp thoại hiển thị nội dung văn bản đầu ra Sau khi nhấp vào nút bên trong Sau khi nhấp vào nút textContent Ví dụ #3giáo dục. html
Giải trình Nội dung văn bản trả về văn bản được nối của tất cả các nút văn bản trong Tập lệnh đang loại bỏ các thẻ đánh dấu. Trong đoạn script trên khi một nút được nhấp vào, nó sẽ hiển thị văn bản trong các thẻ HTML, không phải các thẻ đánh dấu. Do đó, đầu ra trông như thế này đầu ra Ví dụ #4trang. html ________số 8Giải trình Chúng ta có thể thấy rằng định dạng từ đoạn trên cùng đã bị xóa khỏi đoạn dưới cùng khi chúng ta thực hiện ví dụ trên. Điều này nói rằng chúng tôi sẽ không thể thay thế văn bản bằng HTML bằng textContent đầu ra Phần kết luậnDo đó, trong bài viết này, chúng ta đã học cách sử dụng Các thuộc tính JavaScript của nội dung văn bản và Html bên trong để lấy các nút văn bản và các phần tử Html cũng như hậu duệ của chúng. InternalHTML linh hoạt hơn vì nó cho phép sáng tạo hơn. Nếu người dùng chỉ muốn trả lại nội dung văn bản, textContent là cách tốt nhất. Vì chúng ta có nhiều thuộc tính JavaScript hơn mà chúng ta đã thảo luận trong bài viết trước, điều đó phụ thuộc vào tình huống của thuộc tính mà chúng ta nên ưu tiên Bài viết được đề xuấtĐây là hướng dẫn về InternalHTML so với textContent. Ở đây chúng ta thảo luận về sự khác biệt chính giữa InternalHTML và textContent với infographics và bảng so sánh, tương ứng. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm – TextContent có nhanh hơn InternalHTML không?innerHTML phân tích cú pháp nội dung dưới dạng HTML nên sẽ mất nhiều thời gian hơn. nodeValue sử dụng văn bản thẳng, không phân tích cú pháp HTML và nhanh hơn. textContent sử dụng văn bản thẳng, không phân tích cú pháp HTML và nhanh hơn .
Cái nào bên trong hoặc textContent tốt hơn?i) textContent lấy nội dung của tất cả các phần tử, bao gồm các phần tử Ngược lại, văn bản bên trong chỉ hiển thị các phần tử mà con người có thể đọc được . ii) textContent trả về mọi phần tử trong nút. Ngược lại, InternalText biết về kiểu dáng và sẽ không trả lại văn bản của các phần tử ẩn.
Tại sao bạn không nên sử dụng InternalHTML?'innerHTML' Có rủi ro bảo mật
. Người dùng độc hại có thể sử dụng tập lệnh chéo trang (XSS) để thêm tập lệnh phía máy khách độc hại nhằm đánh cắp thông tin người dùng riêng tư được lưu trữ trong cookie phiên.
TextContent có nhanh hơn InternalText không?Để hoàn thiện, hãy để tôi chứng minh tác động của việc chọn InternalText thay vì textContent đối với hiệu suất. Trên trình duyệt WebKit, bạn sẽ thấy sự khác biệt đáng kể về hiệu suất (~300 mili giây so với ~1 mili giây) . Trên IE9, bạn sẽ thấy hiệu suất tốt hơn và sự khác biệt nhỏ hơn nhiều. |