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

1 min read

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

前提

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

方法

DOMParserを利用する。

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 を挿入する

このページをシェアする

Related Articles

[ESLint] 特定のimportにおいてパスの末尾スラッシュを禁止する方法

背景 / やりたいこと / @typescript-eslint/no-restricted-imports を利用した / 余談(末尾のスラッシュ自体を禁止にする)

`<input type="range">`のstepを可変にする方法

仕様 / 完成デモ / 実装 / 参考

[Vite] CSSだけをビルドする方法

背景 / Vite をインストール / 仕様

CSS in JSとは何か

想定読者 / そもそも JS フレームワーク(React、Vue.js)を採用する理由とは何か / 「命令的 UI」 と 「宣言的 UI」 / 「命令的 UI」 VS 「宣言的 UI」 / CSS in JS とは / CSS in JS ライブラリ / Emotion の使い方 / 利用するメリット / 利用するデメリット / 関連 / Footnotes

[CSS in JS] 外部のリセットCSSを使う方法

目的 / 課題 / おまけ