Tôi có thể thêm các thẻ HTML vào InternalHTML không?

Có nhiều thuộc tính khác nhau trong JavaScript giúp làm việc với HTML của trang hiện tại. Thuộc tính innerHTML trong JavaScript được sử dụng để thêm Html vào phần tử. Nó cũng trả về nội dung có trong một phần tử

Tập lệnh là các chương trình hoặc mã JavaScript giúp trang web tương tác và động. Chúng tôi có thể thêm tập lệnh trong thẻ tập lệnh trên cùng một trang hoặc một trang JavaScript khác được liên kết với tệp HTML

HTML được chèn vào thuộc tính innerHTML cho một phần tử. Tuy nhiên, không thể chèn tập lệnh vào thuộc tính InternalHTML. Nếu được chèn vào InternalHTML, nó sẽ không được hiển thị trên trang cũng như không được thực thi. Tập lệnh trong InternalHTML không làm gì trên trang web

Vì vậy, chúng ta hãy xem tập lệnh được chèn bằng InternalHTML và cách thêm tập lệnh để thực thi

Chèn tập lệnh bằng InternalHTML

InternalHTML được sử dụng để thay thế nội dung của phần tử Html bằng nội dung Html được thêm vào nó. Nó được sử dụng cho nội dung Html và không thể thực thi tập lệnh với thuộc tính này. Tập lệnh được thêm vào bên trongHTML cũng không hiển thị trên màn hình

Chúng tôi không thể sử dụng InternalHTML cho các thành phần của tập lệnh. Nhưng chúng ta có thể thêm tập lệnh vào phần tử bằng cách tạo tập lệnh có tên phần tử bằng phương thức createElement. Chúng tôi phải thêm một tập lệnh bên trong nó bằng cách sử dụng InternalHTML và sau đó nối nó trở lại phần tử phải thêm tập lệnh. Theo cách này, trước tiên chúng ta phải thêm tập lệnh vào phần tử tập lệnh rồi đến phần tử HTML bằng cách nối nó vào một phần tử

Chúng tôi đang làm theo cú pháp dưới đây để chèn tập lệnh với InternalHTML

cú pháp

//A wrong way to add a script using innerHTML
var element = document.getElementById[""];
element.innerhtml= "";

//A right way to add a script using innerHTML
var script= document.createElement["script"];
script.innerhtml="";
element.appendChild[ script ];

Chúng tôi đang làm theo cú pháp trên để kiểm tra xem các tập lệnh có thể được chèn bằng InternalHTML hay không

Ví dụ

Trong ví dụ bên dưới, chúng ta phải hiển thị bình phương của số do người dùng nhập vào trường nhập liệu. Chúng tôi đã thêm tập lệnh vào thuộc tính InternalHTML của một phần tử. Nhưng nó không phải là hành vi của thuộc tính này để thực thi tập lệnh như thế này. Tập lệnh này đã trở nên vô dụng vì nó không thực thi cũng như không hiển thị trên màn hình. Vì vậy, chúng tôi đã tạo một phần tử tập lệnh bằng thuộc tính createElement và thêm một tập lệnh bên trong nó bằng cách sử dụng InternalHTML. Cuối cùng, chúng tôi đã thêm phần tử tập lệnh này vào một phần tử trong phần tử HTML

Using the innerHTML property to insert a script

Enter a number:
Submit

Trong ví dụ này, người dùng có thể thấy rằng để thực thi một tập lệnh bằng thuộc tính innerHTML, chúng ta phải thêm nó thông qua phần tử tập lệnh

Chèn tập lệnh bằng phương thức eval[] với InternalHTML

Phương thức eval[] là phương thức trong JavaScript lấy tập lệnh dưới dạng một chuỗi trong tham số của nó. Nó sẽ thực thi chuỗi được cung cấp trong tham số dưới dạng câu lệnh JavaScript và trả về kết quả của tập lệnh. Chúng ta phải chèn tập lệnh trong dấu ngoặc kép hoặc đơn vì phương thức này cung cấp tập lệnh dưới dạng chuỗi

Tất cả người dùng có thể làm theo cú pháp để sử dụng phương thức eval[] với InternalHTML để chèn tập lệnh

cú pháp

var element = document.getElementById[""];
element.innerhtml= eval[""];

Thực hiện theo cú pháp trên để sử dụng phương thức eval[] trong JavaScript

Ví dụ

Trong ví dụ này, chúng tôi đã sử dụng phương thức eval[] để thực thi tập lệnh bên trong thuộc tính InternalHTML. Từ người dùng, chúng tôi sẽ lấy hai đầu vào, hiển thị phép trừ trên màn hình sau khi nhấp vào nút. Tập lệnh trừ một số đã được thêm vào bên trong phương thức eval trong thuộc tính InternalHTML

Using the eval[] method to insert a script through innerHTML

First number:
-
Second number:
Substract

Trong ví dụ trên, người dùng có thể thấy rằng chúng ta đã sử dụng phương thức eval[] để thực thi một chuỗi bên trong thuộc tính InternalHTML của JavaScript

Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách sử dụng thuộc tính JavaScript

let content = element.innerHTML;

Code language: JavaScript [javascript]
2 của một phần tử để lấy hoặc đặt đánh dấu HTML có trong phần tử đó

let content = element.innerHTML;

Code language: JavaScript [javascript]
2 là thuộc tính của

let content = element.innerHTML;

Code language: JavaScript [javascript]
4 cho phép bạn lấy hoặc đặt đánh dấu HTML có trong phần tử

element.innerHTML = 'new content'; element.innerHTML;

Code language: JavaScript [javascript]

Đọc thuộc tính InternalHTML của một phần tử

Để lấy đánh dấu HTML có trong một phần tử, bạn sử dụng cú pháp sau

let content = element.innerHTML;

Code language: JavaScript [javascript]

Khi bạn đọc

let content = element.innerHTML;

Code language: JavaScript [javascript]
2 của một phần tử, trình duyệt web phải tuần tự hóa đoạn HTML của phần tử con của phần tử đó

1] Ví dụ JavaScript InternalHTML đơn giản

Giả sử rằng bạn có đánh dấu sau

Home Services

Code language: HTML, XML [xml]

Ví dụ sau sử dụng thuộc tính

let content = element.innerHTML;

Code language: JavaScript [javascript]
2 để lấy nội dung của phần tử

let content = element.innerHTML;

Code language: JavaScript [javascript]
7

let menu = document.getElementById['menu']; console.log[menu.innerHTML];

Code language: JavaScript [javascript]

Làm thế nào nó hoạt động

  • Đầu tiên, chọn phần tử

    let content = element.innerHTML;

    Code language: JavaScript [javascript]
    7 theo id của nó [

    let content = element.innerHTML;

    Code language: JavaScript [javascript]
    9] bằng cách sử dụng phương thức

    Home Services

    Code language: HTML, XML [xml]
    0
  • Sau đó, lấy nội dung HTML của phần tử

    let content = element.innerHTML;

    Code language: JavaScript [javascript]
    7 bằng cách sử dụng hàm

    let content = element.innerHTML;

    Code language: JavaScript [javascript]
    2

đầu ra

Home Services

Code language: HTML, XML [xml]

2] Kiểm tra nguồn HTML hiện tại

Thuộc tính

let content = element.innerHTML;

Code language: JavaScript [javascript]
2 trả về nguồn HTML hiện tại của tài liệu, bao gồm tất cả các thay đổi đã được thực hiện kể từ khi trang được tải

Xem ví dụ sau

JavaScript innerHTML Home Services let menu = document.getElementById['menu']; // create new li element let li = document.createElement['li']; li.textContent = 'About Us'; // add it to the ul element menu.appendChild[li]; console.log[menu.innerHTML];

Code language: HTML, XML [xml]

đầu ra

Home Services About Us

Code language: HTML, XML [xml]

Làm thế nào nó hoạt động

  • Đầu tiên, lấy phần tử

    let content = element.innerHTML;

    Code language: JavaScript [javascript]
    7 với id

    let content = element.innerHTML;

    Code language: JavaScript [javascript]
    9 bằng cách sử dụng phương thức

    Home Services

    Code language: HTML, XML [xml]
    0
  • Second, create a new

    Home Services

    Code language: HTML, XML [xml]
    7 element and add it to the
      element using the

      Home Services

      Code language: HTML, XML [xml]
      8 and

      Home Services

      Code language: HTML, XML [xml]
      9 methods.
    • Third, get the HTML of the

      let content = element.innerHTML;

      Code language: JavaScript [javascript]
      7 element using the innerHTML property of the
        element. The contents of the
          element include the initial content and the dynamic content created dynamically by JavaScript.

        Đặt thuộc tính InternalHTML của một phần tử

        Để đặt giá trị của thuộc tính

        let content = element.innerHTML;

        Code language: JavaScript [javascript]
        2, bạn sử dụng cú pháp này

        element.innerHTML = newHTML;

        Cài đặt sẽ thay thế nội dung hiện có của một phần tử bằng nội dung mới

        Ví dụ: bạn có thể xóa toàn bộ nội dung của tài liệu bằng cách xóa nội dung của phần tử

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        2

        document.body.innerHTML = '';

        Code language: JavaScript [javascript]

        ⚠️ Rủi ro bảo mật

        HTML5 specifies that a tag inserted with innerHTML should not execute.

        Giả sử bạn có tài liệu

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        3 sau

        JS innerHTML example

        Code language: HTML, XML [xml]

        Và tệp

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        4 trông như thế này

        let content = element.innerHTML;

        Code language: JavaScript [javascript]
        0

        Trong ví dụ này,

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        5 bên trong thẻ

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        6 sẽ không thực thi

        Tuy nhiên, nếu bạn thay đổi mã nguồn của

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        4 như sau

        let content = element.innerHTML;

        Code language: JavaScript [javascript]
        1

        Trong ví dụ này, hình ảnh có src 1 sẽ không được tải thành công. Do đó, lỗi bật sẽ thực thi chạy cảnh báo []

        Thay vì có một cảnh báo[] đơn giản, tin tặc có thể đưa vào mã độc, người dùng mở trang web sẽ dễ bị tấn công

        Vì vậy, bạn không nên đặt những nội dung mà bạn không có quyền kiểm soát thành

        let content = element.innerHTML;

        Code language: JavaScript [javascript]
        2, nếu không bạn sẽ đối mặt với rủi ro bảo mật tiềm ẩn

        Nếu bạn muốn chèn văn bản thuần túy vào tài liệu, bạn có thể sử dụng thuộc tính

        let menu = document.getElementById['menu']; console.log[menu.innerHTML];

        Code language: JavaScript [javascript]
        9 thay vì

        let content = element.innerHTML;

        Code language: JavaScript [javascript]
        2.

        Home Services

        Code language: HTML, XML [xml]
        1 sẽ không được phân tích dưới dạng HTML mà dưới dạng văn bản thô

        Làm cách nào để đặt thẻ HTML trong InternalHTML?

        Để nối thêm bằng thuộc tính InternalHTML, trước tiên hãy chọn phần tử [div] nơi bạn muốn nối thêm mã. Sau đó, thêm mã được đính kèm dưới dạng chuỗi bằng toán tử += trên InternalHTML . Ví dụ. html.

        Tại sao bạn không nên sử dụng InternalHTML?

        Có thể ngắt tài liệu . InternalHTML không cung cấp xác thực thích hợp, vì vậy bất kỳ mã HTML hợp lệ nào cũng có thể được sử dụng. Điều này có thể phá vỡ tài liệu của JavaScript. Ngay cả HTML bị hỏng cũng có thể được sử dụng, điều này có thể dẫn đến các sự cố không mong muốn.

        Làm cách nào để đặt thẻ InternalHTML trong JavaScript?

        Đặt thuộc tính InternalHTML của phần tử . phần tử. innerHTML = newHTML; .

        Nhược điểm của việc sử dụng InternalHTML là gì?

        Nhược điểm của InternalHTML . Khi chúng tôi đã sử dụng trình xử lý sự kiện thì trình xử lý sự kiện sẽ không tự động được gắn vào các phần tử mới được tạo bởi InternalHTML. It is very slow because as inner HTML already parses the content even we have to parse the content again so that's why it takes time. When we have used the event handlers then the event handlers are not automatically attached to the new elements created by innerHTML.

Chủ Đề