首页 > 解决方案 > 随机调用 Img.onerror - SVG 字符串作为源

问题描述

我有一个例程,它接受一个画布上下文和一个 SVG 字符串并将其渲染到画布上,它返回一个一旦完成就解决的承诺。

无论出于何种原因,它在 Firefox 和 Safari 中都失败了(没有在 IE 中尝试过),但似乎是我可以一直在 Chrome 中工作的唯一解决方案。我尝试了几种不同的选择:

代码:

export default (ctx, rawSVG, { width, height }) =>
    new Promise((resolve, reject) => {
        const img = new Image(width, height);
        img.onload = () => {
            ctx.drawImage(img, 0, 0);
            resolve(img);
        };

        img.onerror = err => reject(err);

        img.src = `data:image/svg+xml;utf8,${encodeURIComponent(rawSVG)}`;
    });

标签: javascriptimagesvgbase64

解决方案


推荐阅读