gpt4 book ai didi

javascript - 为什么 SVG-Edit 中的更改未保存在文件中?

转载 作者:行者123 更新时间:2023-12-03 00:43:51 25 4
gpt4 key购买 nike

function FileLoad(file) {
svgEditor.loadFromURL(file);
var svg = document.getElementById("svgID");
code continues....
}

我正在尝试在加载 svg 后对其进行操作。

但是代码没有进一步执行,开发者工具中也没有显示

我正在使用 SVG 编辑工具。

最佳答案

svgEditor.loadFromURL()返回一个 Promise。就其本质而言,加载始终是异步操作。您需要等待它完成:

function FileLoad(file) {
svgEditor.loadFromURL(file).then(function () {
var svg = document.getElementById("svgID");
// code continues....
}, function (error) {
// load error handling
});
}

从函数的命名来看,好像您使用它来实例化一个对象。但是,您使用 FileLoad 函数时,请注意,SVG 内容不会同步可用,而只能在 Promise 解决之后才可用。在使用 new 调用它的情况下,可能的模式可能如下所示(callback 函数包含您对实例化对象执行的所有操作):

function FileLoad(file, callback) {
svgEditor.loadFromURL(file).then(function () {
var svg = document.getElementById("svgID");
code continues....
}, function (error) {
// load error handling
}).then(callback.bind(this));
}

fileInstance = new FileLoad(url, callback);

编辑: 该函数在 4.0.0 版本中更改了其签名。对于 3.2.0 及更早版本,您need to pass配置对象中的回调函数:

function FileLoad(file) {
svgEditor.loadFromURL(file, {
callback: function (success) {
if (success) {
var svg = document.getElementById("svgID");
// code continues....
} else {
// load error handling
}
}
});
}

关于javascript - 为什么 SVG-Edit 中的更改未保存在文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53332701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com