〈load-file〉웹 컴포넌트, DOM에 외부 콘텐츠 추가
〈load-file〉웹 컴포넌트
✔️ 외부 텍스트 파일 .txt, .svg, .html 로드
✔️ 콘텐츠를 DOM에 주입
ShadowDOM에서
<slot>
요소에 대한 lightDOM 콘텐츠를 존중합니다<load-file>
요소 자체를 replaceWith
속성✔️는 'HTML 가져오기'를 대체하지 않습니다. <스크립트>가 실행되지 않습니다.
✔️는 8줄의 코드로 수행됩니다.
페이지에 외부 SVG 파일을 넣는 방법에는 여러 가지가 있습니다.
출처: https://vecta.io/blog/best-way-to-embed-svg
👉 src로 : <img src="file.svg">
👉 객체로 : <객체 유형 = "image/svg+xml" data="file.svg"></object>
👉 CSS 배경 이미지 배경 이미지: url(file.svg)
👉 🎉 <load-file> 웹 컴포넌트 사용 🎉
<load-file replaceWith src="//load-file.github.io/heart.svg"></load-file>
<load-file src="//load-file.github.io/heart.svg">
<style>
path:nth-child(2n+2) {
fill: GREEN; /* shadowDOM style does NOT style global DOM */
}
</style>
</load-file>
replaceWith
속성을 사용하여 베어 SVG로 표시<load-file> 웹 컴포넌트 로드
Repo에서 요소 로드
<script src="https://load-file.github.io/element.js"></script>
사용자 정의 요소가 정의되는 시기는 중요하지 않습니다.
문서의 기존<load-file>
요소는 사용자 정의 요소가 나중에 정의될 때 자동으로 업그레이드됩니다.
또는 <script> 태그를 사용하여 HTML 문서의 에 있는 전체 요소를 정의합니다.
<script>
customElements.define("load-file",class extends HTMLElement{async connectedCallback(){
this.shadowRoot||this.attachShadow({mode:"open"});this.shadowRoot.innerHTML=await(
await fetch(this.getAttribute("src"))).text();this.shadowRoot.append(...this.children);
this.hasAttribute("replaceWith")&&this.replaceWith(...this.shadowRoot.children)}})
</script>
<load-file> 웹 구성 요소 사용
src
속성에 전체 경로를 지정하십시오.
src 내용이 문서의 replaceWith
요소 자체를 대체하도록 <load-file>
속성을 추가합니다.
<load-file replaceWith src="https://load-file.github.io/heart.svg"></load-file>
!! replaceWith
의 대문자를 확인하세요.
replaceWith
가 없으면 소스 콘텐츠가 shadowDOM에 주입됩니다.
<load-file src="https://load-file.github.io/heart.svg"></load-file>
속성shadowRoot
이 있는 모든 요소는 shadowDOM으로 이동됩니다.
<load-file src="https://load-file.github.io/heart.svg">
<style shadowRoot>
path:nth-child(2n+2) {
fill: GREEN; /* shadowDOM style will NOT style global DOM */
}
</style>
</load-file>
Reference
이 문제에 관하여(〈load-file〉웹 컴포넌트, DOM에 외부 콘텐츠 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/dannyengelman/load-file-web-component-add-external-content-to-the-dom-1nd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<script src="https://load-file.github.io/element.js"></script>
<script>
customElements.define("load-file",class extends HTMLElement{async connectedCallback(){
this.shadowRoot||this.attachShadow({mode:"open"});this.shadowRoot.innerHTML=await(
await fetch(this.getAttribute("src"))).text();this.shadowRoot.append(...this.children);
this.hasAttribute("replaceWith")&&this.replaceWith(...this.shadowRoot.children)}})
</script>
src
속성에 전체 경로를 지정하십시오.src 내용이 문서의
replaceWith
요소 자체를 대체하도록 <load-file>
속성을 추가합니다.<load-file replaceWith src="https://load-file.github.io/heart.svg"></load-file>
!!
replaceWith
의 대문자를 확인하세요.replaceWith
가 없으면 소스 콘텐츠가 shadowDOM에 주입됩니다.<load-file src="https://load-file.github.io/heart.svg"></load-file>
속성
shadowRoot
이 있는 모든 요소는 shadowDOM으로 이동됩니다.<load-file src="https://load-file.github.io/heart.svg">
<style shadowRoot>
path:nth-child(2n+2) {
fill: GREEN; /* shadowDOM style will NOT style global DOM */
}
</style>
</load-file>
Reference
이 문제에 관하여(〈load-file〉웹 컴포넌트, DOM에 외부 콘텐츠 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dannyengelman/load-file-web-component-add-external-content-to-the-dom-1nd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)