import Vue from "vue";
|
import svgIcon from "@/components/svgIcon/index.vue";
|
Vue.component("svg-icon", svgIcon);
|
|
// 修改为将SVG注入到父应用DOM
|
const requireContext = require.context("@/assets/icons/svg", false, /\.svg$/);
|
const requireAll = (requireContext) => {
|
const svgSymbols = requireContext.keys().map(key => {
|
return requireContext(key).default || requireContext(key);
|
});
|
|
// 创建SVG sprite容器
|
const spriteContainer = document.createElement('div');
|
spriteContainer.id = 'svg-sprite-container';
|
spriteContainer.style.display = 'none';
|
|
// 构建SVG sprite
|
const svgSprite = `
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
${svgSymbols.join('')}
|
</svg>
|
`;
|
|
spriteContainer.innerHTML = svgSprite;
|
|
// 关键:注入到父应用的body中
|
(window.parent || window).document.body.appendChild(spriteContainer);
|
};
|
|
requireAll(requireContext);
|