Hướng dẫn which attribute do you use to replace innerhtml in the? - bạn sử dụng thuộc tính nào để thay thế innerhtml trong?

Thuộc tính

document.body.innerHTML = "";
2
document.body.innerHTML = "";
3 được hoặc đặt đánh dấu HTML hoặc XML có trong phần tử.
document.body.innerHTML = "";
3
gets or sets the HTML or XML markup contained within the element.

Để 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.

Giá trị

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

document.body.innerHTML = "";
3 loại bỏ tất cả các hậu duệ của phần tử và thay thế chúng bằng các nút được xây dựng bằng cách phân tích HTML được đưa ra trong chuỗi HTMLString.

Ngoại lệ

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

Ném nếu một nỗ lực được thực hiện để đặt giá trị của

document.body.innerHTML = "";
3 bằng cách sử dụng một chuỗi không được hình thành đúng cách HTML.

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

Ném nếu một nỗ lực được thực hiện để chèn HTML vào một nút có cha mẹ là

document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
1.

Ghi chú sử dụng

Thuộc tính

document.body.innerHTML = "";
3 có thể được sử dụng để kiểm tra nguồn HTML hiện tại của trang, bao gồm mọi thay đổi đã được thực hiện kể từ khi trang ban đầu được tải.

Đọc nội dung HTML của một phần tử

Đọc

document.body.innerHTML = "";
3 khiến tác nhân người dùng tuần tự hóa đoạn HTML hoặc XML bao gồm hậu duệ của phần tử. Chuỗi kết quả được trả về.

let contents = myElement.innerHTML;

Điều này cho phép bạn nhìn vào đánh dấu HTML của các nút nội dung của phần tử.

Lưu ý: Đoạn HTML hoặc XML được trả về được tạo dựa trên các nội dung hiện tại của phần tử, do đó, đánh dấu và định dạng của đoạn được trả về có thể không phù hợp với đánh dấu trang gốc. The returned HTML or XML fragment is generated based on the current contents of the element, so the markup and formatting of the returned fragment is likely not to match the original page markup.

Thay thế nội dung của một phần tử

Đặt giá trị của

document.body.innerHTML = "";
3 cho phép bạn dễ dàng thay thế các nội dung hiện có của một phần tử bằng nội dung mới.

Lưu ý: Đây là rủi ro bảo mật nếu chuỗi được chèn có thể chứa nội dung độc hại có khả năng. Khi chèn dữ liệu do người dùng cung cấp, bạn nên luôn luôn cân nhắc sử dụng

document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
5, để vệ sinh nội dung trước khi được chèn. This is a security risk if the string to be inserted might contain potentially malicious content. When inserting user-supplied data you should always consider using
document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
5 instead, in order to sanitize the content before it is inserted.

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 thuộc tính

document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
6 của tài liệu:

document.body.innerHTML = "";

Ví dụ này tìm thấy sự đánh dấu HTML hiện tại của tài liệu và thay thế các ký tự

document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
7 bằng thực thể HTML
document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
8, do đó về cơ bản chuyển đổi HTML thành văn bản thô. Điều này sau đó được bọc trong một yếu tố
document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;
9. Sau đó, giá trị của
document.body.innerHTML = "";
3 được thay đổi thành chuỗi mới này. Do đó, nội dung tài liệu được thay thế bằng hiển thị toàn bộ mã nguồn của trang.

document.documentElement.innerHTML = `
${document.documentElement.innerHTML.replace(/</g,"<")}
`
;

Chi tiết hoạt động

Chính xác thì điều gì xảy ra khi bạn đặt giá trị của

document.body.innerHTML = "";
3? Làm như vậy khiến tác nhân người dùng tuân theo các bước sau:

  1. Giá trị được chỉ định được phân tích cú pháp là HTML hoặc XML (dựa trên loại tài liệu), dẫn đến một đối tượng
    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    
    2 đại diện cho bộ nút DOM mới cho các phần tử mới.
  2. Nếu phần tử có nội dung được thay thế là phần tử
    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    
    3, thì thuộc tính
    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    
    5 của phần tử
    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    
    3 được thay thế bằng
    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    
    2 mới được tạo trong bước 1.
  3. Đố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
    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    
    2 mới.

Nối HTML vào một phần tử

Đặt giá trị của

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

Ví dụ: chúng ta có thể nối một mục danh sách mới (

<ul id="list">
  <li><a href="#">Item 1a>li>
  <li><a href="#">Item 2a>li>
  <li><a href="#">Item 3a>li>
ul>
9) vào danh sách hiện có (
const list = document.getElementById("list");

list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;
    0):

    HTML

    <ul id="list">
      <li><a href="#">Item 1a>li>
      <li><a href="#">Item 2a>li>
      <li><a href="#">Item 3a>li>
    ul>
    

    JavaScript

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

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

    document.body.innerHTML = "";
    
    3 để nối các yếu tố HTML (ví dụ:
    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ỳ trình nghe sự kiện được đặt trước đó. Đó là, sau khi bạn nối bất kỳ phần tử HTML nào theo cách bạn sẽ không thể nghe người nghe sự kiện đã đặt trước đó.

    Cân nhắc về Bảo mật

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

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

    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "";
    el.innerHTML = name; // harmless in this case
    

    Mặc dù điều này có thể trông 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 thẻ

    const list = document.getElementById("list");
    
    list.innerHTML += `
  • Item ${list.children.length + 1}
  • `
    ;
    4 được chèn bằng
    document.body.innerHTML = "";
    
    3 không nên thực thi.

    Tuy nhiên, có nhiều cách để thực hiện 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 đó, nên thay vì

    document.body.innerHTML = "";
    
    3 bạn sử dụng:

    • document.documentElement.innerHTML = `
      ${document.documentElement.innerHTML.replace(/</g,"<")}
      `
      ;
      5 để vệ sinh văn bản trước khi nó được chèn vào DOM.
    • let name = "John";
      // assuming 'el' is an HTML DOM element
      el.innerHTML = name; // harmless in this case
      
      // …
      
      name = "";
      el.innerHTML = name; // harmless in this case
      
      0 Khi chèn văn bản đơn giản, vì điều này chèn nó dưới dạng văn bản thô thay vì phân tích nó là HTML.

    Ví dụ

    Ví dụ này sử dụng

    document.body.innerHTML = "";
    
    3 để tạo cơ chế để đăng nhập tin nhắn vào một hộp trên trang web.

    JavaScript

    function log(msg) {
      const logElem = document.querySelector(".log");
    
      const time = new Date();
      const timeStr = time.toLocaleTimeString();
      logElem.innerHTML += `${timeStr}: ${msg}
    `
    ; } log("Logging mouse events inside this container…");

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

    document.body.innerHTML = "";
    
    3 để nối các yếu tố HTML (ví dụ:
    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ỳ trình nghe sự kiện được đặt trước đó. Đó là, sau khi bạn nối bất kỳ phần tử HTML nào theo cách bạn sẽ không thể nghe người nghe sự kiện đã đặt trước đó.

    Chúng tôi thêm một phương thức thứ hai ghi lại thông tin về các sự kiện dựa trên

    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "";
    el.innerHTML = name; // harmless in this case
    
    6 (chẳng hạn như
    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "";
    el.innerHTML = name; // harmless in this case
    
    7,
    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "";
    el.innerHTML = name; // harmless in this case
    
    8 và
    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "";
    el.innerHTML = name; // harmless in this case
    
    9):

    function logEvent(event) {
      const msg = `Event ${event.type} at ${event.clientX}, ${event.clientY}`;
      log(msg);
    }
    

    Sau đó, chúng tôi sử dụng điều này làm trình xử lý sự kiện cho một số sự kiện chuột trên hộp có chứa nhật ký của chúng tôi:

    const boxElem = document.querySelector(".box");
    
    boxElem.addEventListener("mousedown", logEvent);
    boxElem.addEventListener("mouseup", logEvent);
    boxElem.addEventListener("click", logEvent);
    boxElem.addEventListener("mouseenter", logEvent);
    boxElem.addEventListener("mouseleave", logEvent);
    

    HTML

    HTML khá đơn giản cho ví dụ của chúng tôi.

    document.body.innerHTML = "";
    
    0

    const name = "";
    el.innerHTML = name; // shows the alert
    
    0 với lớp
    const name = "";
    el.innerHTML = name; // shows the alert
    
    1 chỉ là một thùng chứa cho mục đích bố trí, trình bày nội dung với một hộp xung quanh nó.
    const name = "";
    el.innerHTML = name; // shows the alert
    
    0 có lớp là
    let name = "John";
    // assuming 'el' is an HTML DOM element
    el.innerHTML = name; // harmless in this case
    
    // …
    
    name = "";
    el.innerHTML = name; // harmless in this case
    
    5 là bộ chứa cho chính văn bản nhật ký.

    CSS

    Các kiểu CSS sau đây nội dung ví dụ của chúng tôi.

    document.body.innerHTML = "";
    
    1

    Kết quả

    Nội dung kết quả trông như thế này. Bạn có thể thấy đầu ra vào nhật ký bằng cách di chuyển chuột vào và ra khỏi hộp, nhấp vào nó, v.v.

    Thông số kỹ thuật

    Sự chỉ rõ
    Dom phân tích cú pháp và tuần tự hóa # Dom-innerhtml-innerhtml
    # dom-innerhtml-innerhtml

    Tính tương thích của trình duyệt web

    Bảng BCD chỉ tải trong trình duyệt

    Xem thêm

    Làm cách nào để thay đổi nội dung InternyHTML?

    Để đặt giá trị của thuộc tính bên trong, 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.element. innerHTML = newHTML; The setting will replace the existing content of an element with the new content.

    Internhtml có phải là một thuộc tính không?

    HTML 5 tiêu chuẩn hóa hai thuộc tính mới, InsideHTML và OuterHTML.Hai thuộc tính được sử dụng để đọc nội dung của thẻ hoặc toàn bộ tài liệu.Họ có thể thay thế nội dung của thẻ hoặc thêm nội dung mới.. The two attributes are used to read the contents of a tag or the entire document. They can replace the contents of a tag or add new content.

    Làm thế nào sử dụng bên trong với thẻ div?

    Sử dụng thuộc tính bên trong: Để sử dụng thuộc tính bên trong, trước tiên hãy chọn phần tử (div) nơi bạn muốn nối bộ mã.Sau đó, thêm mã được đặt kèm theo dưới dạng các chuỗi bằng toán tử += trên InsideHTML.first select the element (div) where you want to append the code. Then, add the code enclosed as strings using the += operator on innerHTML.

    InsideHtml được sử dụng cho JavaScript là gì?

    Thuộc tính bên trong là một phần của mô hình đối tượng tài liệu (DOM) cho phép mã JavaScript thao tác một trang web được hiển thị.Cụ thể, nó cho phép đọc và thay thế mọi thứ trong một phần tử DOM đã cho (thẻ HTML).allows Javascript code to manipulate a website being displayed. Specifically, it allows reading and replacing everything within a given DOM element (HTML tag).