使用 svg.js 加载 SVG 文件
Load SVG file with svg.js
我在 SO 中看到了几个与此主题相关的问题并关注了它们 (Loading a SVG file with svg.js),但尝试加载 svg 文件没有成功。
__this.canvas = SVG('canvas').size(500, 500);
$.get('/cuentos/Rapunzel/prueba.svg', function(data) {
__this.data = data;
console.log(__this.data);
__this.canvas.svg(__this.data);
});
__this.canvas 是 svgjs.Doc 的类型,按以下方式导入:
import SVG from './node_modules/svg.js/svg.js';
declare var svgjs: (domElement: HTMLElement) => svgjs.Library;
错误:
我做错了或遗漏了一些东西。
有什么帮助吗?
JQuery 的 $.get
,对于 SVG,默认返回一个代表 SVG 的 DOM 对象。然而,SVG.js 的 svg
函数需要一个字符串。
您可以简单地强制 JQuery 返回这样的字符串:
$.get('/cuentos/Rapunzel/prueba.svg', function(data) {
__this.data = data;
console.log(__this.data);
__this.canvas.svg(__this.data);
}, 'text');
PS:我打开了一个针对 SVG.js 的 PR 以针对该情况显示正确的错误消息:https://github.com/svgdotjs/svg.js/pull/870
使用 jQuery 这种形式在 2.7.1 和 3 中都有效。0.x 我测试了
var svgp = SVG($('#<name of svg>')[0]);
我在 SO 中看到了几个与此主题相关的问题并关注了它们 (Loading a SVG file with svg.js),但尝试加载 svg 文件没有成功。
__this.canvas = SVG('canvas').size(500, 500);
$.get('/cuentos/Rapunzel/prueba.svg', function(data) {
__this.data = data;
console.log(__this.data);
__this.canvas.svg(__this.data);
});
__this.canvas 是 svgjs.Doc 的类型,按以下方式导入:
import SVG from './node_modules/svg.js/svg.js';
declare var svgjs: (domElement: HTMLElement) => svgjs.Library;
错误:
我做错了或遗漏了一些东西。
有什么帮助吗?
JQuery 的 $.get
,对于 SVG,默认返回一个代表 SVG 的 DOM 对象。然而,SVG.js 的 svg
函数需要一个字符串。
您可以简单地强制 JQuery 返回这样的字符串:
$.get('/cuentos/Rapunzel/prueba.svg', function(data) {
__this.data = data;
console.log(__this.data);
__this.canvas.svg(__this.data);
}, 'text');
PS:我打开了一个针对 SVG.js 的 PR 以针对该情况显示正确的错误消息:https://github.com/svgdotjs/svg.js/pull/870
使用 jQuery 这种形式在 2.7.1 和 3 中都有效。0.x 我测试了
var svgp = SVG($('#<name of svg>')[0]);