Tài liệu getElementById ( demo ) innerHTML là gì?

Tôi xin lỗi, tôi không thực sự hiểu lời giải thích của bạn. Tôi cũng bối rối - Bạn đang nói rằng bạn chưa viết bất kỳ mã HTML nào? . Nếu bạn chưa, thì đó là vấn đề của bạn

Bạn không thực sự nói tài liệu bị lỗi gì. getElementById[“bản trình diễn”]. bên trongHTML là

Tôi cho rằng đó là một loại ngoại lệ con trỏ null. Nếu tài liệu. getElementById[“demo”] trả về undefined [nói cách khác, nó không thể tìm thấy id đó trong tài liệu] sau đó. InternalHTML sẽ đưa ra lỗi vì bạn không thể truy cập các thuộc tính trên giá trị rỗng hoặc không xác định. [Về mặt kỹ thuật, bạn không thể trên bất kỳ nguyên thủy nào, nhưng những cái khác có trình bao bọc đối tượng ngăn NPE. ]

Để chèn HTML vào tài liệu thay vì thay thế nội dung của một phần tử, hãy sử dụng phương thức

document.body.innerHTML = "";
4

Một chuỗi chứa tuần tự hóa HTML của hậu duệ của phần tử. Đặt giá trị của

document.body.innerHTML = "";
3 sẽ xóa tất cả các phần tử con của phần tử và thay thế chúng bằng các nút được tạo bằng cách phân tích cú pháp HTML được cung cấp trong chuỗi htmlString

document.body.innerHTML = "";
6
document.body.innerHTML = "";
7

Bị ném nếu cố gắng đặt giá trị của

document.body.innerHTML = "";
3 bằng cách sử dụng chuỗi không phải là HTML được định dạng đúng

document.body.innerHTML = "";
9
document.body.innerHTML = "";
7

Bị ném nếu cố gắng chèn HTML vào một nút có nút gốc là một

document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace[/Item 3

2 đại diện cho tập hợp các nút DOM mới cho các phần tử mới
  • Nếu phần tử có nội dung đang được thay thế là phần tử
    
      Item 1
      Item 2
      Item 3
    
    
    3, thì thuộc tính
    
      Item 1
      Item 2
      Item 3
    
    
    5 của phần tử
    
      Item 1
      Item 2
      Item 3
    
    
    5 được thay thế bằng phần tử
    
      Item 1
      Item 2
      Item 3
    
    
    2 mới được tạo ở bước 1
  • Đối với tất cả các phần tử khác, nội dung của phần tử được thay thế bằng các nút trong
    
      Item 1
      Item 2
      Item 3
    
    
    2 mới
  • Đặt giá trị của

    document.body.innerHTML = "";
    
    3 cho phép bạn thêm nội dung mới vào phần tử hiện có

    Ví dụ: chúng ta có thể nối thêm một mục danh sách mới [_______21_______9] vào danh sách hiện có [

    const list = document.getElementById["list"];
    
    list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;
    0]

    HTML

    
      Item 1
      Item 2
      Item 3
    
    

    JavaScript

    const list = document.getElementById["list"];
    
    list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;

    Xin lưu ý rằng việc sử dụng

    document.body.innerHTML = "";
    
    3 để nối thêm các phần tử HTML [e. g.
    const list = document.getElementById["list"];
    
    list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;
    2] sẽ dẫn đến việc loại bỏ bất kỳ người nghe sự kiện nào đã đặt trước đó. Nghĩa là, sau khi bạn thêm bất kỳ phần tử HTML nào theo cách đó, bạn sẽ không thể nghe các trình xử lý sự kiện đã đặt trước đó

    Không có gì lạ khi thấy

    document.body.innerHTML = "";
    
    3 được sử dụng để chèn văn bản vào trang web. Điều này có khả năng trở thành phương tiện tấn công trên một trang web, tạo ra rủi ro bảo mật tiềm ẩn

    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "alert['I am John in an annoying alert!']";
    el.innerHTML = name; // harmless in this case
    

    Mặc dù điều này có vẻ giống như một cuộc tấn công kịch bản chéo trang, nhưng kết quả là vô hại. HTML chỉ định rằng một thẻ

    const list = document.getElementById["list"];
    
    list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;
    4 được chèn với
    document.body.innerHTML = "";
    
    3

    Tuy nhiên, có nhiều cách để thực thi JavaScript mà không cần sử dụng các phần tử

    const list = document.getElementById["list"];
    
    list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;
    4, do đó, vẫn có rủi ro bảo mật bất cứ khi nào bạn sử dụng
    document.body.innerHTML = "";
    
    3 để đặt các chuỗi mà bạn không có quyền kiểm soát. Ví dụ

    const name = "";
    el.innerHTML = name; // shows the alert
    

    Vì lý do đó, bạn nên sử dụng thay vì

    document.body.innerHTML = "";
    
    3

    • document.documentElement.innerHTML = `
      ${document.documentElement.innerHTML.replace[/

    Chủ Đề