[JavaScript] 外部HTMLを読み込んでDOM上へ展開する方法

外部コンテンツをiframeなどを使わずにHTML上へ展開したい。

前提

  1. 外部からHTMLファイルを取得する(CORS対応済み)
  2. body要素へ取得したHTMLを追加する

方法

fetch("https://example.com/contents.html")
  .then((res) => res.text())
  .then((text) => {
    // テキストをDOMに変換する
    return new DOMParser().parseFromString(text, "text/html");
  })
  .then((dom) => document.body.append(dom));
  1. fetchで対象ページを取得する
  2. 取得したデータをtext()で文字列に変換する
  3. DOMParser().parseFromStringで文字列をDOMに変換する
  4. bodyへDOMを挿入する