728x90
html 안에 html을 넣고 싶었다.
html로 문서를 작성 중이었는데 하나의 파일이 너무 지저분해지는 것 같아서 각 세부내용들은 다른 파일에 작성하고 불러오는 것이 목적이었다.
위처럼 contents라는 id를 가진 div 안에 contents.html에 작성된 내용을 넣고 싶었다.
Javascript의 fetch를 이용해서 html text를 가져와 innerHtml을 이용하면 손쉽게 해결할 수 있었다.
물론 이 방법은 index.html을 그냥 브라우저에서 여는 형식으로는 동작하지 않는다. fetch를 이용하는 방법이기에 이 글을 읽는 사람이라면 알고 있을 것이다.
async function fetchHtmlAsText(url) {
return await (await fetch(url)).text();
}
async function importPage(target) {
document.querySelector('#' + target).innerHTML = await fetchHtmlAsText(target + '.html');
}
위의 두 가지 함수만 이용하면 id로 요소를 검색한 뒤 해당 요소 안에 id와 동일한 파일명의 html을 넣을 수 있다.
이렇게 사용하면
contents라는 id를 가진 div 안에 contents.html의 내용이 들어가는 것을 확인할 수 있다.
Reference
728x90
'Web > JS' 카테고리의 다른 글
[JS] Chrome Extension을 Safari Web Extension으로 변환하기 (0) | 2022.06.28 |
---|---|
[JS] Chrome Extension(크롬 확장 프로그램) - 유데미 한글 자막 자막 위치 변경 기능 추가하기 (0) | 2022.05.16 |
[JS] Chrome Extension(크롬 확장 프로그램) - 유데미 한글 자막 옵션 유지 기능 추가하기 (0) | 2021.09.28 |
[JS] Chrome Extension(크롬 확장 프로그램) - 유데미 한글 자막 기능 추가하기 (1) | 2021.08.25 |
[JS] Chrome Extension - 유데미 한글 자막 오류 수정하기 (0) | 2021.05.27 |