innerHTML
1. κ°μ
textContent νλ‘νΌν°, innerText νλ‘νΌν°λ HTML λ§ν¬μ
μ΄ νμ±λμ§ μμ μ± ν
μ€νΈμ ννλ‘ μΆκ°λλ€. κ·Έλ λ€λ©΄ ν
μ€νΈ λ
Έλμ HTML λ§ν¬μ
μ νμ±νμ¬ μΆκ°νλ λ°©λ²μ 무μμΌκΉ? λ°λ‘ innerHTML νλ‘νΌν°λ₯Ό μ¬μ©νλ©΄ λλ€.
innerHTML νλ‘νΌν°λ μμ λ
Έλμ HTML λ§ν¬μ
μ μ·¨λνκ±°λ λ³κ²½νλλ° μ¬μ©λλ€.
2. innerHTML νλ‘νΌν° λ°ν κ°
<!DOCTYPE html>
<html lang="en">
  <body>
    <div id="foo">
      Hello
      <span>world</span>
    </div>
    <script>
      const $foo = document.getElementById("foo");
      console.log($foo.innerHTML);
    </script>
  </body>
</html>μμ μ½λμμ μ½μ κ°μΌλ‘  "Hello <span>world</span>"μ΄ μΆλ ₯λλ€.
3. innerHTML νλ‘νΌν°λ₯Ό μ¬μ©νμ¬ μμ λ
Έλ μμ νκΈ°
μμ λ
Έλμ innerHTML νλ‘νΌν°μ λ¬Έμμ΄μ ν λΉνλ©΄ μμ λ
Έλμ λͺ¨λ  μμ λ
Έλκ° μ κ±°λκ³  ν λΉν λ¬Έμμ΄μ ν¬ν¨λμ΄ μλ HTML λ§ν¬μ
μ΄ νμ±λμ΄ μμ λ
Έλμ μμ λ
Έλλ‘ DOMμ λ°μνλ€.
<!DOCTYPE html>
<html lang="en">
  <body>
    <div id="foo">
      Hello
      <span>world</span>
    </div>
    <script>
      const $foo = document.getElementById("foo");
      $foo.innerHTML = "Hi <span>everyone</span>";
    </script>
  </body>
</html>
innerHTML νλ‘νΌν°λ₯Ό μ¬μ©νλ©΄ μλμ μμμ²λΌ λ
Έλ μΆκ°, κ΅μ²΄, μμ κ° κ°λ₯νλ€.
<!DOCTYPE html>
<html lang="en">
  <body>
    <ul id="animal">
      <li>dog</li>
    </ul>
    <script>
      const $foo = document.getElementById("animal");
      // λ
Έλ μΆκ°
      $foo.innerHTML += "<li>cat</li>";
      $foo.innerHTML += "<li>lion</li>";
      // λ
Έλ κ΅μ²΄
      $foo.innerHTML = "<li>tiger</li>";
      // λ
Έλ μμ 
      $foo.innerHTML = "";
    </script>
  </body>
</html>4. innerHTML νλ‘νΌν°μ λ¨μ 
4-1. μ·¨μ½ν ν¬λ‘μ€ μ¬μ΄νΈ μ€νΈλ¦½ν
 곡격
<!DOCTYPE html>
<html lang="en">
  <body>
    <div id="foo">
      Hello
      <span>world</span>
    </div>
    <script>
      const $foo = document.getElementById("foo");
      $foo.innerHTML = `<img src="x" onerror="alert(document.cookie)">`;
    </script>
  </body>
</html>ν¬λ‘μ€ μ¬μ΄νΈ μ€νΈλ¦½ν
 곡격μ ν΄κ²°νλ λ°©λ²μ HTML μλν°μ μ΄μ
μ μ¬μ©νλ κ²μ΄λ€. μ΄λ μ¬μ©μλ‘λΆν° μ
λ ₯λ°μ λ°μ΄ν°μ μν΄ λ°μν  μ μλ ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν
 곡격μ μλ°©νκΈ° μν΄ μ μ¬μ  μνμ μ κ±°νλ κΈ°λ₯μ λ§νλ€.
λνμ μΈ λΌμ΄λΈλ¬λ¦¬λ DOMPurifyκ° μλ€.
4-2. λͺ¨λ  μμ λ
Έλλ₯Ό μ κ±°νκ³  DOMμ λ³κ²½
<!DOCTYPE html>
<html lang="en">
  <body>
    <ul id="animal">
      <li>dog</li>
    </ul>
    <script>
      const $foo = document.getElementById("animal");
      $foo.innerHTML += "<li>cat</li>";
    </script>
  </body>
</html>μμ μμμμ <li>dog</li>λ λ³κ²½μ΄ μμΌλ―λ‘ λ€μ μμ±ν  νμκ° μλ€. νμ§λ§ $foo.innerHTML += "<li>cat</li>";μΌλ‘ μΈν΄ <li>dog</li>λ μμ λμλ€κ° λ€μ μμ±λλ€.
μ¦, innerHTML νλ‘νΌν°μ HTML λ§ν¬μ
 λ¬Έμμ΄μ ν λΉνλ©΄ μ μ§λμ΄λ μ’μ κΈ°μ‘΄μ μμ λ
ΈλκΉμ§ λͺ¨λ μ κ±°νκ³  λ€μ μ²μλΆν° μλ‘κ² μμ λ
Έλλ₯Ό μμ±νμ¬ DOMμ λ°μνλ€. μ΄λ₯Ό ν¨μ¨μ μ΄μ§ μλ€.
4-3. λΆκ°λ₯ν μλ‘μ΄ μμλ₯Ό μ½μ
ν  λ μ½μ
λ  μμΉ μ§μ 
<ul id="animal">
  <li>dog</li>
  <li>cat</li>
</ul>innerHTML νλ‘νΌν°λ₯Ό μ¬μ©νμ¬ dogμ cat μ¬μ΄μ μλ‘μ΄ μμλ₯Ό μ½μ
ν  μ μλ€.
innerHTML νλ‘νΌν°λ 볡μ‘νμ§ μμ μμλ₯Ό μλ‘κ² μΆκ°ν  λ μ μ©νμ§λ§ κΈ°μ‘΄ μμλ₯Ό μ κ±°νμ§ μμΌλ©΄ μμΉλ₯Ό μ§μ ν΄ μλ‘μ΄ μμλ₯Ό μ½μ
ν΄μΌ ν  λλ μ¬μ©νμ§ μλ κ²μ΄ μ’λ€.
5. Conclusion
innerTextνλ‘νΌν°μinnerHTMLνλ‘νΌν°λ μΈλ» 보기μ λΉμ·ν μν μ νλ€κ³ μκ°ν μ μλ€. κ·Έλμ μμ μλ λ κ°λ₯Ό κ±°μ ꡬλΆνμ§ μκ³ μ¬μ©μ νμλ€. νμ§λ§ μμ°ν μ°¨μ΄μ μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ μν©μ λ§κ² μ μ¬μ©μ ν΄μΌ κ² λ€. λνinnerHTMLνλ‘νΌν°μ λ¨μ λ μ‘΄μ¬νκΈ° λλ¬Έμ λ¨μ μ΄ λ€μ΄λλ μν©μ΄ μ€λ©΄ λ€λ₯Έ νλ‘νΌν°λ₯Ό μ¬μ©νμ¬ μμ λ Έλλ΄μ μμμ μΆκ°νλλ‘ νμ.
μ°Έκ³ 
λμ - λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive: μλ°μ€ν¬λ¦½νΈμ κΈ°λ³Έ κ°λ κ³Ό λμ μ리
π 2022-10-13
Last updated