svgxuse

A simple polyfill that fetches external SVGs referenced in use elements when the browser itself fails to do so. Demo: https://icomoon.io/svgxuse-demo/

  • 所有者: Keyamoon/svgxuse
  • 平台:
  • 許可證: MIT License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

svgxuse

A simple polyfill that fetches external SVGs referenced in <use> elements when the browser itself fails to do so.

Example of <use> with external reference:

<svg class="icon icon-edit"><use xlink:href="symbol-defs.svg#icon-edit"></use></svg>

IE (9, 10, 11) fails to load symbol-defs.svg in the example above. svgxuse goes through every <use> element. If the element is referencing an external SVG and the browser has failed to load it, the script sends a GET request to grab and prepend the SVG to <body>.

Try this demo in IE or other browsers to see how this polyfill works in action.

Features

No browser sniffing

This polyfill relies on feature detection. As a result, it detects and attempts to solve issues in any browser that may fail to fetch the linked SVG. For example, cross domain linking to external SVGs may fail with this error:
Unsafe attempt to load URL X from frame with URL Y. Domains, protocols and ports must match.
Using svgxuse, your SVG would still load as long as it is served with proper CORS headers.

Doesn't try to support IE8

svgxuse is a polyfill and therefore doesn't need to support IE8. It's minimal and to the point.

No requestAnimationFrame or setTimeout for polling the DOM

Unlike similar solutions, svgxuse doesn't use requestAnimationFrame or setTimeout for polling the DOM.

No repetitive addition of inline SVGs

Instead of replacing <use> elements with SVG paths, svgxuse only adds symbol definitions to the markup once.

Usage

<script src="svgxuse.js" defer></script>

With NPM

npm install --save svgxuse
<script defer src="node_modules/svgxuse/svgxuse.js"></script>

With Bower

bower install --save svgxuse
<script defer src="bower_components/svgxuse/svgxuse.js"></script>

License

MIT © IcoMoon.io

主要指標

概覽
名稱與所有者Keyamoon/svgxuse
主編程語言JavaScript
編程語言JavaScript (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2015-11-11 14:01:44
推送於2022-08-28 18:35:39
最后一次提交2022-08-28 11:35:39
發布數34
最新版本名稱v1.2.6 (發布於 2017-09-05 06:57:19)
第一版名稱v1.0.0 (發布於 )
用户参与
星數742
關注者數16
派生數87
提交數111
已啟用問題?
問題數44
打開的問題數13
拉請求數3
打開的拉請求數0
關閉的拉請求數6
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?