Глядя на исходный код, он выглядит почти как ошибка, которую нельзя установить на ноль так, как вы ожидаете (в качестве параметра setOverlayImage). Глядя на static_canvas.class.js , вы видите исходный код setOverlayImage()
:
setOverlayImage: function (url, callback) { // TODO (kangax): test callback
return fabric.util.loadImage(url, function(img) {
this.overlayImage = img;
callback && callback();
}, this);
}
А в util / misc.js вы видите исходный код util.loadImage()
:
function loadImage(url, callback, context) {
if (url) {
var img = new Image();
/** @ignore */
img.onload = function () {
callback && callback.call(context, img);
img = img.onload = null;
};
img.src = url;
}
}
Таким образом, вы можете видеть, что если вы передадите null setOverlayImage()
, null, в свою очередь, будет аргументом util.loadImage()
. И если аргумент последнего равен нулю, метод ничего не делает, поэтому, в свою очередь, вся операция ничего не делает.
Похоже, вам нужно обмануть и напрямую установить свойство для объекта canvas
:
canvas.overlayImage = null;
canvas.renderAll.bind(canvas);