外部コンテンツをiframe
などを使わずに HTML 上へ展開したい。
前提
- 外部から HTML ファイルを取得する(CORS 対応済み)
body
要素へ取得した HTML を追加する
外部コンテンツをiframe
などを使わずに HTML 上へ展開したい。
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));
fetch
で対象ページを取得するtext()
で文字列に変換するDOMParser().parseFromString
で文字列を DOM に変換するbody
へ DOM を挿入する