그림자 돔의 페이지에 svg 아이콘을 렌더링하는 웹 구성 요소를 구축 중입니다. 즉외부 svg를 참조하는 use 요소의 내용을 가져올 수 있습니까?
<ba-icon i="airplane"></ba-icon>
SVG 아이콘이 많은 외부 svg 스프라이트 파일이 있습니다. 웹 구성 요소의
내부 구조는 그림자 돔에 다음과 같은 렌더링 :
<svg>
<use xlink:href="i.dist.svg#i-airplane"></use>
<svg>
모든 것이 제대로 화면에 렌더링되는, 그러나 나는 SVG의 내부에 내장되어 몇 가지 정보를 한 후에 특별히 정보가 포함입니다 viewbox
에서 (예 : viewBox="0 0 32 32"
).
use
에 렌더링 된 내용이 그림자 돔에도 입력된다는 것을 알고 있습니다. 그러나 use
에 포함 된 정보를 얻는 또 다른 방법을 찾으려고합니다. 나는 svg의 내용을 ajax하려고 시도했다. 그러나 이것은 웹 컴포넌트의 각 인스턴스가 현재 호출을하고 있기 때문에 페이지상의 여러 아이콘에 큰 문제가되고있다. 어떻게 그럴 수 있니? 참고로
:
다른 방법은 없습니다. –
원본 SVG에서 이러한 정보를 사용자 정의 요소로 가져올 수 있습니다. – Supersharp
@Supersharp, 나는 잘 모르겠다. 외부 svg ('/ images/sprite.svg # some-icon')를 참조하는 페이지에 svg를 넣으면 브라우저는 이것을 외부 리소스로 취급하고 "sprite"파일을 다른 어떤 것과 동일한 방식으로 요청할 것입니다 영상. 유일한 차이점은 ID를 통해 스프라이트 파일에서 특정 심볼을 가져 오는 것입니다 (# some-icon). 나는 원래의 svg를 페이지에 삽입하지 않을 것이다. – KevBot